Проверка разрешения доступа к глобальному местоположению - PullRequest
0 голосов
/ 05 апреля 2019

В Android я могу проверить, есть ли у моего приложения разрешение на местоположение в соответствии с запросом манифеста следующим образом:

if (ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
  // show alert
}

Но это предупреждение не отображается, когда пользователь переходит в «Настройки Android»> «Безопасность иКонфиденциальность »>« Доступ к местоположению »и отключает его глобально.Есть ли способ определить, отключено ли это глобальное разрешение?

1 Ответ

1 голос
/ 05 апреля 2019

Эта функция возвращает, если глобальное местоположение включено

   public boolean isLocationEnabled() {
       int locationMode = Settings.Secure.LOCATION_MODE_OFF;
       String locationProviders;

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){
            try {
                locationMode = Settings.Secure.getInt(context.getContentResolver(), Settings.Secure.LOCATION_MODE);

            } catch (Settings.SettingNotFoundException e) {
                e.printStackTrace();
            }
            return locationMode != Settings.Secure.LOCATION_MODE_OFF;
        } else {
            locationProviders = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
            return !TextUtils.isEmpty(locationProviders);
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...