После Android 6.0 Marshmallow (API 23) была введена модель разрешений во время выполнения (Runtime Permissions).
Ключевые изменения:
- Запрос разрешений в рантайме: Приложения должны запрашивать опасные разрешения (например, доступ к камере, контактам, местоположению) непосредственно в процессе работы, когда они им действительно нужны, а не при установке.
- Диалоги запроса: Система показывает пользователю диалоговое окно с запросом на предоставление конкретного разрешения, пользователь может разрешить или запретить.
- Управление разрешениями: Пользователи могут в любой момент отозвать предоставленные разрешения в системных настройках приложения.
- Группировка разрешений: Разрешения были сгруппированы по категориям (например, разрешения, связанные с телефоном, или хранилищем). При предоставлении одного разрешения из группы, остальные разрешения этой группы также могут быть предоставлены (хотя в последующих версиях Android это поведение может немного меняться).
Это изменение направлено на повышение безопасности и приватности пользователей, давая им больший контроль над тем, к каким данным приложения имеют доступ. Для разработчиков это означает необходимость адаптации логики приложения для проверки и запроса разрешений в соответствующих местах кода.