Ниже kitkat, я получаю, если gps включен с списком поставщиков
String providers = Secure.getString(context.getContentResolver(), Secure.LOCATION_PROVIDERS_ALLOWED);
if (TextUtils.isEmpty(providers)) {
return false;
}
return providers.contains(LocationManager.GPS_PROVIDER);
Но в kitkat Secure.LOCATION_PROVIDERS_ALLOWED устарел.
Javaodc говорит "use Secure.LOCATION_MODE", режимы расположения - это слабые стороны...
Secure.LOCATION_MODE_OFF
Secure.LOCATION_MODE_SENSORS_ONLY
Secure.LOCATION_MODE_BATTERY_SAVING
Secure.LOCATION_MODE_HIGH_ACCURACY
Но я точно не знаю, что код ниже правильный. (У меня нет устройств kitkat)
int locationMode = Secure.getInt(context.getContentResolver(), Secure.LOCATION_MODE);
boolean isGpsOn = locationMode != Secure.LOCATION_MODE_OFF;
Если неверно, ответьте на правильный код, пожалуйста.
ИЗМЕНИТЬ
Я знаю LocationManager. Но для этого требуется разрешение ACCESS_FINE_LOCATION. Мне не нужно "доступ".
LocationManager manager = (LocationManager) getSystemService( Context.LOCATION_SERVICE );
boolean isGpsOn = manager.isProviderEnabled( LocationManager.GPS_PROVIDER )