Задержка запроса разрешений Android

#android

#Android

Вопрос:

У меня есть приложение, которое содержит <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

Есть ли способ отложить запрос у пользователя разрешения на местоположение, пока он не получит учетную запись, которая этого требует? Я попытался удалить uses-permission из XML, это нарушает местоположение даже после программного запроса разрешений на местоположение.

Я программно запрашиваю информацию о местоположении, но, похоже, это работает только в том случае, если разрешение также указано в XML.

Ответ №1:

Я предполагаю, что вы сталкиваетесь с этим, поскольку вы ориентируетесь на Android ниже 6.0?

Согласно документам

Android 6.0 Marshmallow представила новую модель разрешений, которая позволяет приложениям запрашивать разрешения у пользователя во время выполнения, а не перед установкой. Приложения, поддерживающие новую модель, запрашивают разрешения, когда приложению действительно требуются службы или данные, защищенные службами.

Таким образом, вы не сможете избежать запроса разрешений до того, как пользователю действительно понадобится использовать эту конкретную службу, если вы не нацелены на более высокий уровень API.

Комментарии:

1. Я использую фреймворк QT и обнаружил, что он выполняет этот запрос автоматически при первом запросе GPS. Спасибо за ваш ответ, это заставило меня посмотреть в правильном направлении.

Ответ №2:

Если вам нужно разрешение, вы не можете удалить его из манифеста. Если ваш целевой API выше 23 (Android 6), просто запросите разрешение программно, когда вам это нужно. Вы, как разработчик, определяете, когда запрашивать разрешения.

В противном случае, если устройство пользователя ниже Android 6 или если ваш целевой API ниже 23, тогда разрешения будут запрошены во время установки, и вы не сможете его изменить.