Подтвердить что ты не робот

Есть ли способ запросить разрешение программно?

Есть ли способ запросить разрешение программно в android? Я не хочу добавлять все разрешения на AndroidManifest.xml. Так есть ли какой-либо диалог, который запрашивает разрешение во время выполнения?

4b9b3361

Ответ 1

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

Ответ 2

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

Ответ 3

Пока, но да.

Согласно новой модели разрешения Google, представленной в Android M:

Если приложение, запущенное в M Preview, поддерживает новую модель разрешений, пользователю не нужно предоставлять какие-либо разрешения при установке или обновлении приложения. Вместо этого приложение запрашивает разрешения по мере необходимости, и система показывает диалог пользователю, запрашивающему разрешение.

Здесь приведено краткое описание ключевых компонентов этой новой модели:

  • Объявление разрешений: Приложение объявляет все необходимые ему разрешения в манифесте, как в ранее платформы Android.

  • Группы разрешений: Разрешения делятся на группы разрешений на основе их функциональности. Например, группа разрешений CONTACTS содержит разрешения для чтения и записи пользовательских контактов и информации профиля.

  • Ограниченные разрешения, предоставляемые во время установки. Когда пользователь устанавливает или обновляет приложение, система предоставляет приложению все разрешения, перечисленные в манифесте, которые подпадают под PROTECTION_NORMAL. Например, будильник и разрешения на доступ в Интернет подпадают под PROTECTION_NORMAL, поэтому они автоматически предоставляются во время установки. Дополнительные сведения о том, как обрабатываются обычные разрешения, см. В разделе "Нормальные разрешения". Система также может предоставлять разрешения подписи приложения, как описано в разделе "Системные компоненты и разрешения на подпись". Пользователю не будет предложено предоставить какие-либо разрешения во время установки.
  • Пользователь разрешает разрешения во время выполнения: когда приложение запрашивает разрешение, система показывает диалог пользователю, а затем вызывает функцию обратного вызова приложения, чтобы уведомить об этом, предоставил ли пользователь разрешение. Эта модель разрешения изменяет способ поведения вашего приложения для функций, требующих разрешения. Вот краткое описание методов разработки, которые вы должны придерживаться, чтобы приспособиться к этой модели:

  • Всегда проверяйте разрешения: когда приложение должно выполнить любое действие, требующее разрешения, оно должно сначала проверить, имеет ли оно это разрешение. Если это не так, оно просит получить это разрешение. Вам не нужно проверять разрешения, которые подпадают под PROTECTION_NORMAL.

  • Устранение недостатков разрешений. Изящно: если приложению не предоставлено соответствующее разрешение, он должен обработать ошибку. Например, если разрешение просто необходимо для добавления функции, приложение может отключить эту функцию. Если разрешение имеет важное значение для работы приложения, приложение может отключить все его функции и сообщить пользователю, что они должны предоставить это разрешение.

  • Разрешения могут быть отменены: пользователи могут в любое время отменить права доступа к приложениям. Если пользователь отключает разрешения на приложение, приложение не уведомляется. Еще раз, ваше приложение должно проверить, что ему необходимы разрешения перед выполнением каких-либо ограниченных действий.

Источник: https://developer.android.com/preview/features/runtime-permissions.html

Ответ 5

Android M представила разрешения Runtime, которые все ждали. Кроме того, разрешения теперь классифицируются как NORMAL и DANGEROUS, где разрешения NORMAL предоставляются по умолчанию, и требуются DANGEROUS-разрешения, когда они необходимы. Кроме того, пользователь может в любое время отменить DANGEROUS-разрешения в меню настроек устройства.

Ответ 6

Если я объединю ответы от "Piskvor" и "Hanno Binder", ваше приложение может проверить, доступно ли вспомогательное приложение (попробуйте вызвать его с помощью Intent), и если его нет (вызов завершается с ошибкой), предложите пользователю установить его.

Посмотрите, например, следующее.

как программно скачать Adobe Reader, если не существует