Освой Android играючи
/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000
2-й курс/Закрытая зона
Обновлено 20 августа 2024
Одно разрешение
Несколько разрешений
Начиная с Android 6.0 Marshmallow, радикально изменилась модель разрешений для доступа к важным системным настройкам.
Старая система, когда пользователь скачивал приложение и перед установкой видел диалоговое окно, в котором перечислялись используемые разрешения, ушла в прошлое. Пользователя ставили перед фактом, и он никак не мог повлиять на настройки.
Теперь пользователи могут контролировать доступ приложений к ресурсам устройства. Запросы будут появляться прямо во время работы приложения и пользователи смогут выбрать, давать разрешение или нет. А также смогут управлять правами приложений через системное меню настроек (Settings | Apps | Any AppName). Данное изменение потребует от разработчиков создавать приложения таким образом, чтобы запросы на доступ появлялись, когда это требуется, и учитывать, что некоторые разрешения на доступ не будут получены. Но краха приложений не будет, система попытается подставить пустые значение.
Например, каждый раз, когда приложение обращается с запросом на местоположение пользователя, мы должны проверить, есть ли у приложения разрешение от пользователя на это действие. Если есть — обращаемся к нужным нам системным ресурсам, если нет — запрашиваем. Так же пользователь может навсегда приложению запретить доступ, тогда единственный наш шанс — это попросить его самого зайти в настройки и снять запрет, показав ему объясняющее сообщение, зачем нам нужен доступ.
Разрешения делятся на два типа:
Все опасные разрешения мы должны постоянно проверять, так как пользователь может в любой момент их запретить. Да и при первом старте доступа у приложения к ним нет. Последовательность наших шагов:
Вы вошли на сайт, как гость.
Необходимо зарегистрироваться, чтобы прочитать статью
Разрешение android.permission.RECORD_AUDIO
Пример с определением местоположения
Разрешение ACCESS_FINE_LOCATION для карты (Kotlin)
Диктофон - делаем запись с микрофона