以编程方式查找设备是否支持GPS?

我试图find一些代码,这将帮助我找出我使用的设备是否有GPS? 我不想知道GPS是启用还是禁用。 我只是想通过我的程序知道设备是否有GPS硬件。

是的,这可以做到。

您可以调用LocationManager.getAllProviders()并检查列表中是否包含LocationManager.GPS_PROVIDER

仅供参考,我相信所有发布的Android手机都配有GPS。 这并不是Android似乎担心的事情,例如提到GPS是PackageManager.getSystemAvailableFeatures()返回的设备属性之一。

一个老问题,但我发现这更容易使用

 private boolean hasGpsSensor(){ PackageManager packMan = getPackageManager(); return packMan.hasSystemFeature(PackageManager.FEATURE_LOCATION_GPS); } 

如果不可用,这将是假的,如果激活或不激活,则为true,所以我之后使用了它

 private boolean isGpsEnabled(){ LocationManager manager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); return manager.isProviderEnabled(LocationManager.GPS_PROVIDER); } 

使用这两个,您将知道GPS是否可用,已激活或已停用

还有LocationManager.isProviderEnabled(String provider)方法。