Ниже приведены методы, которые я недавно использовал для этого, НО я должен предупредить вас, что обнаружил, что (по крайней мере, на одном устройстве) возвращается значение true, когда GPS-оборудования вообще нет.Передайте значение, например LocationManager.GPS_PROVIDER.locationManager является экземпляром LocationManager.Надеюсь, вы найдете этот код полезным, но, хотя в моем текущем сценарии он работает нормально для меня, я ожидаю, что вам нужно его усовершенствовать.
// Checks whether the specified location provider is enabled on the device
public static boolean isLocationProviderEnabled(String provider)
{
if ( locationManager.isProviderEnabled(provider) )
{
if (provider.toLowerCase().equals(LocationManager.GPS_PROVIDER))
{
return haveGPS();
}
else
{
return true;
}
}
else
{
return false;
}
}
// Checks whether the GPS hardware is present in the device
private static boolean haveGPS()
{
PackageManager pmgr = SpondleApplication.getInstance().getPackageManager();
boolean gotGPS = pmgr.hasSystemFeature("android.hardware.location.gps");
return gotGPS;
}