Android 如何检查手机是否有GPS设备?

Android 如何检查手机是否有GPS设备?,android,gps,Android,Gps,我试图找到一段代码,它可以告诉我android手机是否有GPS设备?我在搜索结果中得到的大多数样本都告诉我是否启用了GPS。我感兴趣的是Android手机是否有物理GPS设备 谢谢公共布尔hasGPSDevice(上下文) { final LocationManager mgr=(LocationManager)context.getSystemService(context.LOCATION\u服务); if(mgr==null)返回false; 最终列表提供程序=mgr.getAllProv

我试图找到一段代码,它可以告诉我android手机是否有GPS设备?我在搜索结果中得到的大多数样本都告诉我是否启用了GPS。我感兴趣的是Android手机是否有物理GPS设备

谢谢

公共布尔hasGPSDevice(上下文)
{
final LocationManager mgr=(LocationManager)context.getSystemService(context.LOCATION\u服务);
if(mgr==null)返回false;
最终列表提供程序=mgr.getAllProviders();
如果(providers==null)返回false;
返回提供程序。包含(LocationManager.GPS\U提供程序);
}
从API级别8(Froyo)开始,您可以使用以下代码:

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

+你的回答有道理。但在模拟器中,即使我执行
GPS支持=No
此代码也会返回true。有什么想法吗?可能这在没有GPS的手机上效果很好,它会返回false但不确定…在Kindle Fire(没有GPS)上测试,效果很好。处理时间比LocationManager#getAllProviders()更短
PackageManager packageManager = mContext.getPackageManager();
boolean hasGPS = packageManager.hasSystemFeature(PackageManager.FEATURE_LOCATION_GPS);