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

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

Solutions Collecting From Web of "Есть ли способ запросить разрешение программно?"

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

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

  • Сайт разработчика Android – системные разрешения

До сих пор, но да .

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

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

Ниже приведен краткий обзор ключевых компонентов этой новой модели:

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

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

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

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

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

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

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

Нет.

Ответ здесь: получить динамическое разрешение для Android

См. Раздел «Права доступа» здесь: http://developer.android.com/guide/topics/security/security.html

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

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

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

Как скачать Adobe Reader, если не существует