В Android 6.0 (API 23) была введена модель runtime-разрешений.
Основные изменения:
- Динамические разрешения: Приложения запрашивают разрешения не при установке, а непосредственно перед первым использованием функции, требующей данного разрешения.
- Группировка разрешений: Разрешения сгруппированы по типу. Если пользователь предоставляет разрешение одному члену группы (например,
READ_CONTACTS), он автоматически получает разрешения для других членов этой же группы (например, WRITE_CONTACTS).
- Отозванные разрешения: Пользователь может отозвать любое выданное разрешение в любое время через настройки устройства.
В коде приложения это требует дополнительной логики для проверки наличия разрешения и его запроса, если оно еще не предоставлено.
Пример проверки и запроса разрешения в Flutter:
dart