0Pricing
Android Academy · Урок

Модель разрешений Android

Разберитесь в разрешениях, выдаваемых при установке и во время работы

«Модель разрешений Android» — бесплатный урок Android Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Android Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Android Academy содержит 4 уроков всего.

Модель разрешений

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

Понимание двух категорий — основа правильной работы с разрешениями.

Объявление в манифесте

Каждое разрешение, используемое приложением, необходимо объявить в AndroidManifest.xml с помощью тега <uses-permission>. Это относится к обеим категориям.

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />

Обычные разрешения (во время установки)

Обычные разрешения связаны с небольшим риском для конфиденциальности. Система выдаёт их автоматически во время установки. Запрос пользователю не показывается.

  • INTERNET
  • ACCESS_NETWORK_STATE
  • VIBRATE

Вы объявляете их, и они сразу работают.

Опасные разрешения (во время выполнения)

Опасные разрешения защищают личные данные пользователя или функции устройства. Пользователь должен явно предоставить их во время выполнения и впоследствии может отозвать их в настройках.

  • CAMERA
  • ACCESS_FINE_LOCATION
  • READ_CONTACTS
  • RECORD_AUDIO

Группы разрешений

Опасные разрешения объединены в группы (например, «Местоположение» и «Контакты»). В системном запросе пользователю показывается одно понятное описание группы, а не исходные имена разрешений.

Зачем нужны разрешения во время выполнения

До Android 6.0 пользователи предоставляли все разрешения во время установки или не предоставляли их вовсе. Разрешения во время выполнения дают пользователям детальный и отзывный контроль, запрашивая доступ только при фактическом использовании функции.

Это повышает доверие: пользователь видит запрос в подходящем контексте.

Проверка ранее предоставленного разрешения

Всегда проверяйте разрешение перед использованием защищённой функции. ContextCompat.checkSelfPermission возвращает информацию о том, предоставлено ли разрешение в данный момент.

val granted = ContextCompat.checkSelfPermission(
    context,
    Manifest.permission.CAMERA
) == PackageManager.PERMISSION_GRANTED

Специальные разрешения

Некоторые возможности не относятся ни к обычным, ни к стандартным опасным разрешениям; это специальные разрешения, для которых пользователю нужно включить переключатель на отдельном системном экране настроек, например «Показывать поверх других приложений» или «Доступ ко всем файлам».

Разрешения могут меняться в зависимости от уровня API

Классификация и поведение разрешений меняются. Например, POST_NOTIFICATIONS стало разрешением во время выполнения только в Android 13. Всегда проверяйте документацию для поддерживаемых Вами уровней API.

Золотое правило

Никогда не предполагайте, что разрешение у Вас есть. Всегда выполняйте следующие шаги:

  1. Объявите разрешение в манифесте
  2. Проверьте его во время выполнения
  3. Если разрешение не предоставлено, запросите его
  4. Корректно обработайте предоставление и отказ

Принцип минимальных привилегий

Объявляйте и запрашивайте только действительно необходимые разрешения. Каждое дополнительное опасное разрешение снижает доверие пользователей и может привести к проверке приложения на соответствие правилам Google Play. Мы вернёмся к этому в уроке о конфиденциальности.

Быстрая проверка

Проверьте, насколько хорошо Вы поняли модель разрешений.

Повторение

Вы изучили модель разрешений Android:

  • Все разрешения объявляются в манифесте
  • Разрешения Normal выдаются автоматически при установке
  • Для Dangerous-разрешений требуется явное согласие во время работы приложения, и их можно отозвать
  • Всегда проверяйте разрешение перед использованием; для некоторых возможностей требуются специальные разрешения

Далее: запрос разрешений в Compose.

Часто задаваемые вопросы

Урок «Модель разрешений Android» бесплатный?

Да — полный текст урока «Модель разрешений Android» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Android Academy, подпишись на CoddyKit PRO. Курс Android Academy содержит 4 уроков всего.

Чему я научусь в уроке «Модель разрешений Android»?

Разберитесь в разрешениях, выдаваемых при установке и во время работы Ты практикуешь Android Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Android Academy?

Предыдущий опыт не требуется. Android Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Модель разрешений Android»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Android Academy?

Да. Каждый урок Android Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Модель разрешений Android
  2. Запрос разрешений в Compose
  3. Обработка отказов и объяснение причин
  4. Рекомендации по конфиденциальности
← Назад к Android Academy