ACTION_LOCATION_SOURCE_SETTINGS включает только GPS, но разрешение все еще не предоставлено в Android 10 - PullRequest
0 голосов
/ 03 августа 2020

Моему приложению требуется местоположение, оно хорошо работает в Android 9. Но в Android 10 ACTION_LOCATION_SOURCE_SETTINGS не предоставляет разрешение, а только включает GPS.

@RequiresApi(api = Build.VERSION_CODES.M)
private void goToSettings() {
    Intent myAppSettings = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
    startActivity(myAppSettings);
}

В манифесте:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

Если я пытался использовать startActivityForResult, независимо от того, какое действие совершает пользователь, он всегда возвращает RESULT_CANCELED

1 Ответ

0 голосов
/ 03 августа 2020

[https://developer.android.com/about/versions/10/privacy/changes]

Android 10 вводит разрешение ACCESS_BACKGROUND_LOCATION.

В отличие от разрешений ACCESS_FINE_LOCATION и ACCESS_COARSE_LOCATION, доступ ACCESS_BACKGROUND_LOCATION влияет только на разрешение приложения он работает в фоновом режиме. Считается, что приложение обращается к местоположению в фоновом режиме, если не выполняется одно из следующих условий:

Видна активность, принадлежащая приложению. В приложении запущена служба переднего плана, которая объявила тип расположения службы переднего плана.

Возможно, вам нужно запросить разрешение ACCESS_BACKGROUND_LOCATION.

Кроме того, я нашел это в документации

ACTION_SECURITY_SETTINGS

Действие действия: Показать настройки, разрешающие настройку безопасности и конфиденциальности местоположения.

Это может быть действие, которое вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...