Ответ 1
В соответствии с Документация для Android:
Разрешения, требуемые заявка объявляется статически в это приложение, поэтому они могут быть известны во время установки и не будет измените после этого.
Я работаю над приложением, которое содержит некоторую поддержку скриптов. Скрипты, выполняемые этим приложением, могут потребовать всевозможные разрешения в будущем, но трудно предсказать, какие из них.
Есть ли способ запросить дополнительные разрешения во время выполнения (например, приложения iPhone иногда), а не указывать их заранее в AndroidManifest.xml?
В соответствии с Документация для Android:
Разрешения, требуемые заявка объявляется статически в это приложение, поэтому они могут быть известны во время установки и не будет измените после этого.
Android M представляет новую модель разрешений приложений, которая упрощает процесс установки и обновления приложений. Если приложение, работающее на M, поддерживает новую модель разрешений, пользователю не нужно предоставлять какие-либо разрешения при установке или обновлении приложения. Вместо этого приложение запрашивает разрешения по мере необходимости, и система показывает диалог пользователю, запрашивающему разрешение.
Разрешения для предоставления прав пользователям во время выполнения. Когда приложение запрашивает разрешение, система показывает пользователю диалог, а затем вызывает функцию обратного вызова приложения, чтобы уведомить ее о том, предоставлено ли разрешение. Если пользователь предоставляет разрешение, приложение получает все разрешения в этой функциональной области разрешений, которые были объявлены в манифесте приложения.
Для получения дополнительной информации проверьте эту ссылку.