2011-07-12 48 views
3

我想找到一块代码,可以告诉我,android手机是否有GPS设备?我在搜索结果中获得的大部分样本都告知GPS是否启用。我感兴趣的是Android手机是否有物理GPS设备?如何检查手机是否有GPS设备?

感谢

回答

6
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

+ 1你的回答是有道理的。但是在模拟器中,即使我做'GPS支持=否',这个代码也会返回true。有任何想法吗?可能是这将在没有GPS的手机上很好地工作,它将返回假,但不知道... –

13

与API级别8(升级Froyo)开始,您可以使用下面的代码:

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

在Kindle Fire上测试(没有GPS),它的作用就像一个魅力。 –

+0

处理时间少于LocationManager#getAllProviders() –

相关问题