Опасные разрешения для приложений на android: как избежать риска

Чем это опасно?

Перед попаданием программы или игры в официальные хранилища Яндекс.Store и Play Маркет её тестируют на вредоносный код и уязвимости. Это конечно не дает 100% гарантии что приложение “чистое”, но гигантам Яндексу и Гуглу можно доверять. Что бы туда попасть приложение неоднократно тестируется и лишь потом попадает в общую библиотеку. Непроверенные программы это измененные программы или игры от малоизвестных разработчиков, который не выложили в общий доступ. Например вышла новая игра, а пользователи хотят получить взломанную версию с открытыми героями, неограниченным золотом. Такую игру взламывают, накручивают всё что надо и выставляют на файлообменнике или стороннем сайте. Тоже касается платных программ, антивирусов, плееров и прочего. Программа взламывается и люди ищут ее “Бесплатную версию”.

  • Нет гарантии что приложение чистое.
  • В него могут вшить вирусы, которые похитят ваши данные.
  • Могут увести информацию о платежных системах, картах.
  • В лучшем случае подсунут кучу рекламы.

Да, бывают вполне безобидные приложения, которых правда нет в открытом доступе или их пока не добавили в Play Маркет. Если вы доверяете сайту на 100% можете загружать.

Доступ к состоянию смартфона и его идентификации

Некоторые приложения требуют полный доступ к идентификации смартфона. Это означает, что они отныне будут знать его IMEI, конфигурацию, номер телефона и прочую информацию. Знать всё это каждой программе совершенно не обязательно. Если это какой-нибудь простенький справочник рыболова, то лучше соответствующий запрос отклонить. Удовлетворить же его следует, если вы установили лицензионную игру (за покупку которой заплатили), приложение банка, клиент «Яндекс.Денег» или какую-то другую подобную программу. Остальные творения разработчиков пусть узнают вас по логину и паролю — знать IMEI им ни к чему.

Что же могут сделать зловредные программы, если получат доступ к идентификационным данным устройства? Их создатели могут использовать полученную информацию в своих интересах. Например, они могут клонировать IMEI, начать отправлять на ваш номер телефона спам и совершить прочие подобные действия. Грубо говоря, именно так чаще всего совершаются преступления в сфере онлайн-финансов.

Родительский контроль он антивирусных компаний

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

Kaspersky Safe Kids

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

  • Фиксировать и ограничивать запросы в сети интернет;
  • Ограничивать время, проведённое за смартфоном и в определённом приложении;
  • Выставить запрет на установку программ с неподобающим контентом.

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

На телефон ребёнку устанавливается версия “Safe Kids”, которую необходимо синхронизировать с основной версией Kaspersky на смартфоне или компьютере родителя. На «главное» устройство отправляются подробные отчёты со статистикой. Программы имеет гибкую настройку вплоть за чёрного списка сайтов и запрещённых запросов.

В инструкции рассмотрим, как скачать программу и запретить установку программ на Андроид. Для этого необходимо:

  1. Зайти в Play Market и ввести Kaspersky Safe Kids в поиске. В первой строчке расположено нужное приложение.
  2. Запускаем программу, пропускаем вступительную часть. Соглашаемся с политикой конфиденциальности и лицензионным соглашением.
  3. Даём разрешение на доступ к телефону и настройкам.
  4. Создаём или входим под своей учётной записью в системе Касперский. Соглашаемся на обработку данных.
  5. Для активации родительского контроля выбираем «Ребёнок» и регистрируем профиль малыша.

  6. На основном смартфоне, также повторяем установку приложения. Выбираем раздел «Родитель». Придумываем четырёхзначный PIN, который будет использоваться для защиты настроек. 

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

Norton Family parental control

Схожее решение для защиты малышей от антивируса Norton. Функционал приложения во многом похож с аналогом от Касперского, но с некоторыми изменениями:

  • Блокировка публикации личной информации: номера телефона, адреса или email;
  • Оповещение о совершаемых действиях с помощью электронной почты;
  • Журнал совершаемых действий, в котором хранится вся информация за последние 30 дней использования. Указываются повторяющиеся действия и время провождения за определёнными программами;
  • Бесплатное отслеживание месторасположения устройства в реальном времени. В логах сохраняются данные со списком мест посещения продолжительность в месяц;
  • Контроль получаемых и отправляемых SMS-сообщений;
  • Отслеживание просматриваемых на YouTube видео с ограничением просмотра роликов с взрослым рейтингом;
  • Мгновенная блокировка смартфона на время выполнения домашнего задания или во время ужина. Запускается запрет на всё программы и доступ к интернету. Функции связи и звонки не ограничены.

Принцип установки схож с Safe Kids, но для регистрации понадобится аккаунт в системе Norton. Программа представляет большее количество функций на бесплатной основе, в отличие от конкурентов.

Одноразовые разрешения

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

Он идеально подходит для приложений, которым вы не совсем доверяете или которыми не пользуетесь очень часто — он менее подходит для приложений, которые вы всегда используете (разрешать доступ Instagram к камере каждый раз, когда вы хотите сделать снимок, будет не совсем удобно) .

Разрешения будут сброшены для приложений, которые вы не используете. Изображение: DAVID NIELD

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

Больше обновлений в магазине Google Play

Android 11 основан на существующей инициативе под названием Project Mainline, которая по сути продвигает ключевые обновления безопасности через Play Store — это означает, что вам не нужно ждать, пока Samsung, Sony или какая-либо другая компания выпустившая телефон, приступила к выпуску нового версия Android, чтобы ваш телефон станет безопасным.

Дополнительные обновления безопасности поступят через магазин Google Play. Изображение: DAVID NIELD

Основные обновления Android по-прежнему будут выпускаться раз в год, как обычно, с новыми функциями и опциями, но Project Mainline означает, что Google может быстрее реагировать на угрозы безопасности в Android и обеспечивать исправление для любого телефона с доступом к Play Store так быстро, на сколько это возможно.

Данная статья является ручным переводом материала из журнала Wired.

Подписывайся на Эксплойт в Telegram, чтобы всегда оставаться на страже своей приватности и безопасности в интернете.

Загрузка с новым разрешением «Установка неизвестных приложений»

Несмотря на новые настройки и новые разрешения, на самом деле на Oreo и более поздних версиях Android стало немного проще загружать приложения. Когда вы открываете APK, который скачали с помощью любого другого приложения, кроме Google Play, вас спросят, хотите ли вы разрешить этому приложению устанавливать другие приложения. Это может звучать немного запутанно, но на деле все намного проще.

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

Возможные проблемы

Иногда пользователи не могут отключить права администратора. Рассмотрим 3 способа, как с этим справиться.

Проверка на вирусы

Вирусный софт после получения расширенных возможностей блокирует отключение права администратора. В этом случае:

  1. Откройте предустановленное приложение «Очистка», «Защита» или «Безопасность».
  2. Среди доступных функций выберите «Поиск вирусов».
  3. Удалите или перенесите в карантин найденные файлы.

Альтернативный вариант:

  1. Загрузите с Play Market антивирус «Malwarebytes», «Dr.Web» или «ESET».
  2. Запустите проверку и избавьтесь от подозрительных файлов.

Безопасный режим

В безопасном режиме работают приложения, предустановленные в смартфон производителем. Запустить софт, загруженный с Play Market или установленный с APK, не получится, зато удастся лишить его расширенных прав:

  1. Удерживайте кнопку блокировки на протяжении 2-3 секунд. Выберите «Выключить».
  2. Включите смартфон/планшет. Когда появится логотип бренда, удерживайте качель громкости вверх или вниз.
  3. В левом нижнем углу должна появиться надпись «Безопасный режим».

Теперь отключите права администратора, как .

Возвращение к заводским настройкам

Это крайняя мера, которая удалит из внутренней памяти все пользовательские данные, включая фото, видео и установленный софт. Прежде чем переходить к последующим действиям, перенесите важные файлы на ПК, карту памяти или в облачное хранилище. Затем:

  1. Зайдите в «Настройки» и проследуйте в «Аккаунт и синхронизация».
  2. Откройте учетную запись от Google.
  3. В правом верхнем углу щелкните по трем вертикальным точкам и выберите «Удалить аккаунт».

Эта операция необходима, чтобы отключить FRP-защиту. Теперь поставьте гаджет на зарядку и вернитесь в главное меню «Настроек»:

  1. Перейдите в «Память и резервное копирование».
  2. Выберите «Сброс к заводским настройкам». Этот пункт может находиться во вкладке «О телефоне».
  3. Отметьте «Сброс к заводским настройкам» и нажмите «Восстановить».

Как установить приложение из .apk-файла на Android 8.0, 8.1 и 9.0

В остальном процесс «ручной» установки приложений не изменился по сравнению с предыдущими версиями Android. После того как вы разрешили установку из определенного источника, откройте его – допустим это файловый менеджер. Если .apk-файл загружен через браузер, он находится в папке «Downloads» во внутренней памяти или в «sdcard/Downloads», если карта памяти используется как внутренний накопитель.

Щелкните на .apk-файл и выберите «Установщик пакетов». Затем нажмите «Установить».

После завершения установки выберите «Открыть», если хотите сразу запустить приложение либо «Готово», чтобы вернуться к файловому менеджеру.

Почему по умолчанию нельзя загружать приложения с других источников

Создатели мобильных систем заботятся о своих клиентах. В связи с этим по умолчанию, например, в смартфонах Android выставлены параметры, которые запрещают устанавливать приложения не из Google Play. Для многих это может показаться странным: я купил устройство и могу делать с ним всё что хочу — именно так думает большинство. Прежде всего маркет приложений, в нашем случае — Google Play — это сервис, который надёжно защищён от вирусов. А также программ и жучков, которые могут красть пользовательские данные на устройстве.

Онлайн магазин Google Play

Каждое приложение в маркете проходит проверку, любые подозрительные программы из неизвестных источников отсеиваются. Поэтому загрузка из магазина всегда считается безопасной. Хотя время от времени мошенники находят лазейки даже в этих защищённых репозиториях. В такой способ создатели ОС пытаются отгородить малоопытных пользователей от опасного и вредного внешнего Интернета. И каждый, кто отвергнет эту защиту — пеняет сам на себя.

Голосовое управление Яндекс Браузером

Предоставление доступа к микрофону смартфона призвано создать комфортные условия для перемещения в сетевом пространстве. В базовый функционал веб-навигатора встроен голосовой помощник, разработанный компанией Яндекс – Алиса. К основным навыкам Алисы можно отнести:

  • поиск любой информации в интернете;
  • воспроизведение аудио-видеофайлов определенной тематики или настроения;
  • прогноз погоды на различный период;
  • запуск таймера на телефоне;
  • добавление местоположения в избранное .

С полным перечнем возможностей можно ознакомиться, если кликнуть в чате с помощником на иконку в правом верхнем углу – «Что умеет Алиса». Благодаря наличию встроенных голосовых команд в мобильном Яндекс Браузере управление системой значительно упрощается – пользователь формирует запрос в заданном формате, поэтому помощник лучше распознает вопрос.

Метод 1. Разрешение доступа при первом посещении

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

При первом запросе на использование устройств вверху справа появится плашка с просьбой разрешить к ним доступ. Разрешить доступ к микрофону в Яндекс.Браузере можно в уведомлении, нажав «Разрешить». Отключив веб-камеру или микрофон, сайт не сможет работать с этими приспособлениями.

Метод 2. Разрешение доступа к камере и микрофону для одного сайта

Когда сайту запрещается доступ через уведомление, в строке «Состояние» появляется соответствующая иконка с крестиком. Она указывает на попытку получить право использовать девайс, но запрос блокируется. На сайте выдастся ошибка, будет передаваться только черный экран вместо фотографии либо появится надпись «Вы запретили доступ к вашим устройствам». Если нажать на эту иконку с перечеркнутой камерой или микрофоном, то появится настройка безопасности Яндекс.Браузера.

Метод 3. Разрешение доступа к камере в настройках браузера для всех сайтов

Обширная настройка разрешений доступна в специальном разделе программы. Вот как включить камеру или микрофон через настройки:

  1. Открыть меню Яндекс.Браузера и выбрать «Настройки».
  2. Перейти в раздел «Сайты».
  3. Найти специальный отдел и открыть «Расширенные настройки сайтов».
  4. Пролистать к «Доступ к камере» или «Доступ к микрофону».

Это подробное меню для регулирования всех разрешений. Первая строчка позволяет выбрать гаджет, это нужно, если к компьютеру подключено сразу несколько устройств одного типа. Во второй строчке дается право на отправку уведомлений, если поставить галочку «Запрещен», то устройство полностью блокируется для Яндекс.Браузера. Галочка напротив «Запрашивать разрешение» позволит получать уведомления на право использовать необходимое устройство ресурсом.

Если не работает камера или микрофон в определенном месте, то веб-сайт находится в черном списке доступа. По кнопке «Настройки сайтов» открывается подробное управление разрешением. В этом меню список всех сайтов, где запрещен и разрешен доступ к выбранной категории. Убирается сайт из списка по «Удалить» при наведении на строку.

Возможности Google Play

В фирменном магазине компании есть встроенный родительский контроль. Это сделано, чтобы обезопасить пользователей с детьми. Функцию внедрили после нескольких масштабных случаев с покупками внутриигровых вещей с карты родителей. Функция позволяет регулировать и фильтровать доступный контент. Ограничить показ материалов предназначенные для людей старше 13 – 18 лет.

Функция работает не во всех странах. Она на время пропадает при путешествии в регион, где родительский контроль не поддерживается.

Родительский контроль действует на несколько категорий материалов:

  • Игры и приложения;
  • Фильмы и сериалы;
  • Книги;
  • Музыка.

Разберёмся, как заблокировать установку неподобающих программ из Плей Маркет от детей. Ограничение запускается с помощью функции внутри Play Market:

  1. Включаем приложение с магазином.
  2. Открываем контекстное меню с помощью свайпа вправо или нажатием на иконку с тремя горизонтальными полосками.
  3. Выбираем пункт «Настройки», в открывшемся списке нажимаем «Родительский контроль». Включаем функцию.
  4. Задаём защитный PIN-код. Благодаря этому другие пользователи не смогут изменить настройки, не зная 4-хзначный код.
  5. Указываем возрастной рейтинг для каждого типа контента.

Настройка с помощью встроенных средств закончена. Нужно указывать пароль, который не знает ребёнок, чтобы он не мог выключить функцию самостоятельно. Все введённые параметры сохраняются автоматически и их не придётся редактировать заново при каждом запуске или отключении. Это удобно, если телефоном пользуются не только дети, но и взрослые.

Как работают разрешения для приложений?

По умолчанию базовое приложение Android не имеет разрешений, что означает, что оно не может выполнять свою работу, не влияя на взаимодействие с пользователем. Всего Google предоставляет около 17 разрешений для работы приложений. Эти разрешения должны быть определены приложением, прежде чем оно сможет получить доступ.

Эти разрешения обрабатываются платформой Android API, которая вызывает процесс проверки, чтобы проверить, имеет ли приложение необходимое разрешение для работы. А если нет, вы будете получать всплывающее окно каждый раз, когда приложение пытается получить доступ к разрешению и находит его заблокированным.

Было время, когда разработчикам Android приходилось записывать даже самые крошечные разрешения приложений, такие как вибрация мобильного телефона.

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

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

Intent

Не забывайте, что иногда для работы с контактами, камерой и т.п., вы можете использовать Intent и уже установленные приложения. В этом случае вам не придется писать лишний код и запрашивать разрешения для работы с этими ресурсами.

Присоединяйтесь к нам в Telegram:

— в канале StartAndroid публикуются ссылки на новые статьи с сайта startandroid.ru и интересные материалы с хабра, medium.com и т.п.

— в чатах решаем возникающие вопросы и проблемы по различным темам: Android, Kotlin, RxJava, Dagger, Тестирование 

— ну и если просто хочется поговорить с коллегами по разработке, то есть чат Флудильня

— новый чат Performance для обсуждения проблем производительности и для ваших пожеланий по содержанию курса по этой теме 

Обсудить на форуме

Как отключить установку неизвестных источников

Обычно поддержка загрузки и установки приложений включена в браузере с которого вы выходите в Интернет на телефоне. Google Chrome, Mozilla Firefox, мобильный Яндекс.Браузер или стандартный на телефоне. Отключить установку можно для одного из них, которым вы пользуетесь каждый день. Разберем это на примере браузера Google Chrome.

  • Заходим в настройки смартфона.
  • Переходим в пункт “Приложения” или “Все приложения”.
  • Ищем браузер через который выходим в Интернет. И переходим в его настройки.
  • Выбираем пункт с установкой из неизвестных источников и кликаем.

  • На открывшейся странице переводим ползунок в выключенное положение.

Опасные разрешения для приложений

В категорию «опасно» можно отнести девять групп полномочий. Приложения, которые их требуют, каким-то образом влияют на частную жизнь или безопасность пользователя . В каждой группе есть такие полномочия, которых может потребовать какое-либо приложение.

Если пользователь одобрит какие-либо разрешения, приложение получает все разрешения из этой группы автоматически, без дополнительного подтверждения. Например, если приложение получает разрешение на чтение SMS-сообщений, то может также отправлять SMS-сообщения, просматривать MMS-сообщения и выполнять другие действия, относящиеся к этой группе.

Календарь

Возможности
:

  • Просмотр событий, хранящихся в календаре (READ_CALENDAR).
  • Редактирование старых событий и создание новых (WRITE_CALENDAR).

Опасности
: если вы активно используете календарь, приложение изучит вашу ежедневную рутину и, может быть, эти сведения передаст третьим лицам. Кроме того, из-за ошибки приложение может случайно удалить из календаря важную встречу.

Камера

Возможности
:

Опасности
: приложение будет знать, где вы находитесь, в любое время. Может, например, дать знать грабителям, когда Вас нет дома.

Микрофон

Возможности
:

Запись звука с микрофона (RECORD_AUDIO).

Опасности
: приложение может записывать всё, что происходит рядом с телефоном. Все разговоры. Не только тогда, когда Вы разговариваете по телефону, но и в течение всего дня.

Телефон

Возможности
:

  • Чтение информации о телефоне (READ_PHONE_STATE) позволяет программе узнать номер телефона, текущей мобильной сети, состояние текущих соединений и т.д.
  • Совершать звонки (CALL_PHONE).
  • Просмотр списка вызовов (READ_CALL_LOG).
  • Изменение списка вызовов (WRITE_CALL_LOG).
  • Добавление почтового автоответчика (ADD_VOICEMAIL).
  • Использование VoIP (USE_SIP).
  • Обработка разрешений исходящих вызовов (PROCESS_OUTGOING_CALLS) дает приложению доступ к информации, кто звонит, и позволяет перенаправить его на другой номер.

Угрозы
: когда Вы передаёте полномочия, связанные с телефоном, вы предоставляете приложениям выполнения практически любого действия, связанного с голосовой связью. Приложение будет знать, когда и кому Вы звоните, – и может само позвонить, в том числе на платные номера, за ваш счет.

Датчики тела

Возможности
:

(BODY_SENSORS) – эти права обеспечивают доступ к данным, связанным со здоровьем, собираемым некоторыми датчики, такими как датчик сердечного ритма.

Опасности
: если вы используете аксессуаров с датчиками тела (помимо встроенных в телефон датчиков движения), это приложение получает данные о том, что происходит с вашим телом.

SMS

Возможности
:

  • Отправка SMS-сообщения (SEND_SMS).
  • Просмотр сохраненных сообщений (SMS READ_SMS).
  • Прием SMS-сообщений (RECEIVE_SMS).
  • Прием сообщений WAP Push (RECEIVE_WAP_PUSH).
  • Прием входящих MMS-сообщений (RECEIVE_MMS).

Угрозы
: позволяет приложению принимать и читать входящие SMS-сообщения и отправлять их (разумеется, за ваш счет).

Память устройства

Возможности
:

  • Чтение SD-карты или другого носителя памяти (READ_EXTERNAL_STORAGE).
  • Сохранение записей в памяти или на SD-карте (WRITE_EXTERNAL_STORAGE).

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

Фоновый доступ к местоположению

В Android 11 есть еще одна функция, связанная с разрешениями, о которой стоит упомянуть, и это доступ к фоновому местоположению — приложения могут отслеживать ваше местоположение в фоновом режиме. Когда приложение впервые запрашивает разрешение на отслеживание местоположения, возможность постоянно включать это (даже если приложение не запущено) недоступна: для этого вам необходимо посетить определенную страницу приложения в настройках Android.

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

Android 6

С выходом Android 6 механизм подтверждения поменялся. Теперь при установке приложения пользователь больше не видит списка запрашиваемых разрешений. Приложение автоматически получает все требуемые normal разрешения, а dangerous разрешения необходимо будет программно запрашивать в процессе работы приложения.

Т.е. теперь недостаточно просто указать в манифесте, что вам нужен, например, доступ к контактам. Когда вы в коде попытаетесь запросить список контактов, то получите ошибку SecurityException: Permission Denial. Потому что вы явно не запрашивали это разрешение, и пользователь его не подтверждал.

Перед выполнением операции, требующей разрешения, необходимо спросить у системы, есть ли у приложения разрешение на это. Т.е. подтверждал ли пользователь, что он дает приложению это разрешение. Если разрешение уже есть, то выполняем операцию. Если нет, то запрашиваем это разрешение у пользователя.

Давайте посмотрим, как это выглядит на практике.

Проверка текущего статуса разрешения выполняется методом checkSelfPermission

int permissionStatus = ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS);

На вход метод требует Context и название разрешения. Он вернет константу PackageManager.PERMISSION_GRANTED (если разрешение есть) или PackageManager.PERMISSION_DENIED (если разрешения нет).

Если разрешение есть, значит мы ранее его уже запрашивали, и пользователь подтвердил его. Можем получать список контактов, система даст нам доступ.

Если разрешения нет, то нам надо его запросить. Это выполняется методом . Схема его работы похожа на метод startActivityForResult. Мы вызываем метод, передаем ему данные и request code, а ответ потом получаем в определенном onResult методе.

Добавим запрос разрешения к уже имеющейся проверке.

int permissionStatus = ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS);

if (permissionStatus == PackageManager.PERMISSION_GRANTED) {
   readContacts();
} else {
   ActivityCompat.requestPermissions(this, new String[] {Manifest.permission.READ_CONTACTS},
           REQUEST_CODE_PERMISSION_READ_CONTACTS);
}

Проверяем разрешение READ_CONTACTS. Если оно есть, то читаем контакты. Иначе запрашиваем разрешение READ_CONTACTS методом . На вход метод требует Activity, список требуемых разрешений, и request code

Обратите внимание, что для разрешений используется массив. Т.е

вы можете запросить сразу несколько разрешений.

После вызова метода requestPermissions система покажет следующий диалог

Здесь будет отображено разрешение, которое мы запросили методом requestPermissions. Пользователь может либо подтвердить его (ALLOW), либо отказать (DENY). Если будет запрошено сразу несколько разрешений, то на каждое из них будет показан отдельный диалог. И пользователь может какие-то разрешения подтвердить, а какие-то нет.

Решение пользователя мы получим в методе

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
   switch (requestCode) {
       case REQUEST_CODE_PERMISSION_READ_CONTACTS:
           if (grantResults.length > 0
                   && grantResults == PackageManager.PERMISSION_GRANTED) {
               // permission granted
               readContacts();
           } else {
               // permission denied
           }
           return;
   }
}

Проверяем, что requestСode тот же, что мы указывали в requestPermissions. В массиве permissions придут название разрешений, которые мы запрашивали. В массиве grantResults придут ответы пользователя на запросы разрешений.

Мы проверяем, что массив ответов не пустой и берем первый результат из него (т.к. мы запрашивали всего одно разрешение). Если пользователь подтвердил разрешение, то выполняем операцию. Если же пользователь отказал, то дальнейшие действия зависят от логики вашего приложения.

В итоге схема получения разрешения состоит из трех действий:- проверка текущего состояния разрешения — запрос на получение разрешения, если оно еще не было получено- обработка ответа на запрос

Далее поговорим про некоторые дополнительные возможности, нюансы и прочие мелочи.

Как настроить разрешения для приложений

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

В каждом случае предоставление полномочий следует тщательно обдумать. Например, если какая-то игра или инструмент для редактирования фотографий, пытается получить доступ к вашему текущему местоположению, это выглядит страно. Между тем, карты и навигаторы действительно нуждаются в GPS-данных – но им не зачем получать доступ к списку контактов или SMS.

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

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

Теперь у вас есть на выбор два пути. Вы можете проверить все разрешения, предоставленные приложениям. Для этого нажмите на название приложения и выберите Разрешения
.

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

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Твой клуб по настройке
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: