Всем привет!
В связи с углубленным изучением ОС Android возник вопрос, может ли разработчик приложения не указывать в Android Manifest (в разрешениях), к примеру, доступ к SD-карте или интернету, но при этом приложение будет использовать их в своей работе, не уведомляя об этом пользователя?
Или для того, чтобы использовать ту или иную функцию системы, приложению необходимо указать разрешения в манифесте, иначе оно не получит к ним доступ, даже если это прописано в основном коде?
Android
По поводу Android Manifest и разрешений для приложения.
Насколько я помню, то из-за отсутствия разрешения в манифесте приложение ВООБЩЕ не сможет его получить. Система будет автоматически каждый раз отказывать на запросы приложения предоставить ей разрешение.
то есть:
1. Разрешение есть в манифесте и приложение его потом в коде запрашивает:
Система показывает сообщение пользователю о том что приложение запрашивает разрешение на XXX
1.1. Пользователь дал согласие (всегда или только в этот раз), то все ОК.
1.2 Пользователь не дал согласие. Система может повторно спросить его дать разрешение и если и тогда откажется - запишет это разрешение в список запрещенных и больше приложение не получит к нему доступ (пока не разрешим его в настройках этого приложения в настройках системы)
2. Разрешение отсутствует в манифесте: при попытке приложения запросить разрешение, система автоматически дает отказ (ибо его нет в манифесте), а сообщение пользователю даже не показывается. Включить это разрешение в настройках приложения в настройках системы тоже не получится - его просто там не будет в списке разрешений
то есть:
1. Разрешение есть в манифесте и приложение его потом в коде запрашивает:
Система показывает сообщение пользователю о том что приложение запрашивает разрешение на XXX
1.1. Пользователь дал согласие (всегда или только в этот раз), то все ОК.
1.2 Пользователь не дал согласие. Система может повторно спросить его дать разрешение и если и тогда откажется - запишет это разрешение в список запрещенных и больше приложение не получит к нему доступ (пока не разрешим его в настройках этого приложения в настройках системы)
2. Разрешение отсутствует в манифесте: при попытке приложения запросить разрешение, система автоматически дает отказ (ибо его нет в манифесте), а сообщение пользователю даже не показывается. Включить это разрешение в настройках приложения в настройках системы тоже не получится - его просто там не будет в списке разрешений
интернет в манифесте кажется надо указывать, а разрешение на него не надо
Начиная с Android 6.0 (уровень API 23), пользователь может утвердить или отклонить некоторые разрешения приложения во время выполнения. Но независимо от того, какую версию Android поддерживает ваше приложение, вы должны объявлять все запросы разрешений с помощью элемента в манифесте. Если разрешение предоставлено, приложение может использовать защищенные функции. В противном случае попытки получить доступ к этим функциям терпят неудачу.
Начиная с Android 6.0 (уровень API 23), пользователь может утвердить или отклонить некоторые разрешения приложения во время выполнения. Но независимо от того, какую версию Android поддерживает ваше приложение, вы должны объявлять все запросы разрешений с помощью элемента в манифесте. Если разрешение предоставлено, приложение может использовать защищенные функции. В противном случае попытки получить доступ к этим функциям терпят неудачу.
Все разрешения нужно указывать в манифесте, иначе ваш "основной кода" просто не будет работать. Начиная с 6 версии ввели понятие "опасные разрешения", их еще нужно запрашивать у пользователя, но он может вам отказать.
Доступ в интернет не является "опасным", чтение SD является "опасным", но можно писать во внешнюю папку приложения без всяких разрешений через getExternalFilesDir(), но в 12 Андроиде вроде как это закроют (она еще тестируется).
Доступ в интернет не является "опасным", чтение SD является "опасным", но можно писать во внешнюю папку приложения без всяких разрешений через getExternalFilesDir(), но в 12 Андроиде вроде как это закроют (она еще тестируется).
Мда. Ну и гении. Их не слушай. Меня слушай. Всё зависит от compileSDK. Раньше можно было прописать разрешения в Манифесте и пользовать их без спроса. Без спроса, но написать обязан. Ща то же самое, только нужен спрос. Логика такая что разрешение обязано быть в манифесте, иначе у тебя компиля будет ругаться, либо ОС Андроида это дело заблочит
Юрий Логвинов
ты как раз идиотик неадекватный))))
Похожие вопросы
- Android-разработка, под какие версии стоит разрабатывать приложения? (7.0 и выше?)
- Программирование, Java, Android Studio, Unity
- Правда, что через 5 лет профессия android разработчик будет не востребована ?
- Android/Kotlin передача значения переменной в xml
- Как делается мобильное приложение, сколько специалистов могут работать над одним мобильным приложением ?
- Какие языки программирования нужны android разработчику?
- Как и где можно продать свое мобильное приложение?
- нужно ли android-разработику знание javascript, html/css? или это только для "веба"?
- Если бы вы начинали карьеру сейчас - что бы выбрали PHP, Golang или Android?
- Android studio не запустится?
Но я имела в виду, может ли приложение вообще не запрашивать разрешение, например, на выход в интернет, но при этом иметь туда доступ, если это прописано в основном коде?
То есть может ли пользователь даже не знать, что его приложение, скажем, какой-нибудь фонарик без всяких разрешений, выходит в интернет?