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

Har*_*hna 8 android

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

Chr*_*Orr 17

是的,这可以做到.

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

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


Axe*_*elH 9

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

private boolean hasGpsSensor(){
        PackageManager packMan = getPackageManager();
        return packMan.hasSystemFeature(PackageManager.FEATURE_LOCATION_GPS);
}
Run Code Online (Sandbox Code Playgroud)

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

private boolean isGpsEnabled(){
        LocationManager manager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
        return manager.isProviderEnabled(LocationManager.GPS_PROVIDER);
}
Run Code Online (Sandbox Code Playgroud)

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

  • 短。简洁。真正。OP的好答案。非常翔实。谢谢! (2认同)