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

时间:2010-04-06 12:49:19

标签: android

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

3 个答案:

答案 0 :(得分:16)

是的,这可以做到。

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

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

答案 1 :(得分:8)

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

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

如果不可用则为false,如果激活则为true,所以我在

之后使用了这个
private boolean isGpsEnabled(){
        LocationManager manager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
        return manager.isProviderEnabled(LocationManager.GPS_PROVIDER);
}

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

答案 2 :(得分:3)

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