如何检查是否存在GPS传感器?

Oll*_*e C 5 gps android

我正在编写一种方法,如果存在并启用了GPS传感器,它将返回true,但如果没有或关闭则返回false.这证明很难,因为......

hasSystemFeature("FEATURE_LOCATION_GPS")  // on PackageManager
Run Code Online (Sandbox Code Playgroud)

无论设备是否具有GPS,都返回false.因此,即使在具有一个的设备上,并且它已打开,它仍然返回false.对我来说似乎完全错了,但我看不出原因.

isProviderEnabled("gps")   // on LocationManager
Run Code Online (Sandbox Code Playgroud)

返回true,即使在我这里没有GPS硬件的设备上也是如此.这似乎完全违反直觉.

我接受这些结果可能是因为我遗漏了一些东西,SDK不直观,或者甚至我正在测试的设备表现得很奇怪.

我错过了什么?

Rob*_*ond 14

这应该工作.进行此调用时,logcat中是否有任何错误消息?

PackageManager pm = getPackageManager();
boolean hasGps = pm.hasSystemFeature(PackageManager.FEATURE_LOCATION_GPS);
Run Code Online (Sandbox Code Playgroud)