我正在编写一个方法,如果存在并启用了 GPS 传感器,该方法将返回 true,但如果不存在或已关闭,则返回 false。事实证明这很难,因为...
hasSystemFeature("FEATURE_LOCATION_GPS") // on PackageManager
无论设备是否有 GPS,都会返回 false。因此,即使在具有该功能且已打开的设备上,它仍然会返回 false。对我来说似乎完全错误,但我不明白为什么。
isProviderEnabled("gps") // on LocationManager
返回 true,即使在我这里根本没有 GPS 硬件的设备上也是如此。这似乎也完全违反直觉。
我承认这些结果可能是因为我遗漏了一些东西,SDK 不直观,甚至可能是我正在测试的设备表现得很奇怪。
我缺少什么?
这应该有效。当您进行此调用时,logcat 中是否有任何错误消息?
PackageManager pm = getPackageManager();
boolean hasGps = pm.hasSystemFeature(PackageManager.FEATURE_LOCATION_GPS);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)