【问题标题】:How can I check whether the phone has GPS device or not?如何查看手机是否有 GPS 设备?
【发布时间】:2012-01-18 22:27:53
【问题描述】:

我正在寻找一段代码,它可以告诉我安卓手机是否有 GPS 设备?我在搜索结果中获得的大多数样本都在说明 GPS 是否已启用。我感兴趣的是Android手机是否有物理GPS设备?

谢谢

【问题讨论】:

    标签: android gps


    【解决方案1】:

    从 API 级别 8 (Froyo) 开始,您可以使用以下代码:

    PackageManager packageManager = mContext.getPackageManager();
    boolean hasGPS = packageManager.hasSystemFeature(PackageManager.FEATURE_LOCATION_GPS);
    

    【讨论】:

    • 在 Kindle Fire(不带 GPS)上测试过,效果很好。
    • 处理时间比 LocationManager#getAllProviders() 少
    【解决方案2】:
    public boolean hasGPSDevice(Context context)
        {
        final LocationManager mgr = (LocationManager)context.getSystemService(Context.LOCATION_SERVICE);
        if ( mgr == null ) return false;
        final List<String> providers = mgr.getAllProviders();
        if ( providers == null ) return false;
        return providers.contains(LocationManager.GPS_PROVIDER);
        }
    

    【讨论】:

    • + 1 你的回答很有道理。但在模拟器中,即使我执行GPS Support = No,此代码也会返回 true。有任何想法吗?可能这在没有 GPS 的手机上运行良好,它会返回 false 但不确定......
    猜你喜欢
    • 1970-01-01
    • 2011-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多