Разрешения для android приложений: Какие разрешения нужно давать приложениям, а какие — нельзя

Какие разрешения нужно давать приложениям, а какие — нельзя

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

Задумайтесь, правильно ли вы предоставили разрешения приложениям

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

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

  • конфиденциальность;
  • настройки смартфона;
  • специальный доступ.

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

РазрешениеФункцияПотенциальная угроза
КалендарьДоступ к календарю вашего смартфонаСлучайное удаление встреч из календаря или передача информации третьим лицам
КамераДоступ к камере с возможностью съемки фото и видеоСъемка фото и видео без вашего ведома
КонтактыДоступ к номерам, сохраненным в телефонеПередача данных третьим лицам, а также взлом привязанных аккаунтов
МестоположениеОпределение вашей геолокацииИспользуется как инструмент слежки
МикрофонЗапись звукаЕще один инструмент слежки, фиксирующий все, что происходит вокруг вас
Список вызововОзнакомление со списком звонков, включая номера, а также длительность разговораТа же, что и при выдаче разрешения на доступ к контактам
ТелефонСовершение звонков и управление имиИсходящие вызовы без вашего участия на платные или просто подозрительные номера
Файлы и медиаконтентДоступ к вашим фотографиям и другим файламКража личных фото, видео и документов
Физическая активностьДанные о количестве пройденных шаговНе представляет серьезной угрозы, но может использоваться как дополнение к информации о местоположении
SMSОтправка и чтение сообщенийТа же, что и при выдаче разрешения на доступ к телефону

⚡ Подпишись на Androidinsider в Дзене, где мы публикуем эксклюзивные материалы

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

Разрешения первого типа предоставляются только с вашего согласия, поэтому есть смысл задуматься

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

  • настройки системы;
  • состояние Wi-Fi;
  • состояние Bluetooth;
  • ярлыки рабочего стола;
  • экран блокировки;
  • всплывающие окна;
  • постоянные уведомления.

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

❗ Поделись своим мнением или задай вопрос в нашем телеграм-чате

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

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

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

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

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

  1. Откройте настройки телефона.
  2. Перейдите в раздел «Приложения», а затем — «Разрешения».
  3. Выберете нужную категорию разрешений.

Здесь вы сможете настроить разрешения для всех приложений

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

Это лишь основные разрешения, которые можно настроить

🔥 Загляни в телеграм-канал Сундук Али-Бабы, где мы собрали лучшие товары с АлиЭкспресс

Во вкладке «Разрешения приложений» можно отрегулировать права, касающиеся вашей конфиденциальности (доступ к камере, микрофону и так далее). В разделе «Другие разрешения» ищите настройки, которые влияют на автономность устройства (например, включение и выключение Bluetooth). Меняйте их таким образом, чтобы соблюсти баланс между комфортом и автономностью. Не стоит разрешать приложению показывать уведомления, если они вам не нужны.

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

  1. Откройте настройки смартфона.
  2. Перейдите в раздел «Приложения», а потом — «Все приложения».
  3. Выберете нужную программу.

Управлять разрешениями можно по отдельности в настройках каждого приложения

Здесь вы увидите переключатель автозапуска и уже знакомые разделы «Разрешения приложений» и «Другие разрешения». Кроме того, в настройках присутствует пункт «Сетевые подключения», позволяющий, в частности, запретить программе использовать мобильный интернет.

⚡ Подпишись на Androidinsider в Пульс Mail.ru, чтобы получать новости из мира Андроид первым

Разрешение на установку приложений

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

  1. Откройте настройки телефона.
  2. Используя поисковую строку, найдите «Специальный доступ».
  3. Перейдите в раздел «Внешние источники».
  4. Выберете нужную программу.
  5. Активируйте опцию «Разрешить установку из этого источника».

Это разрешение предоставляется через другой раздел настроек

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

Какие разрешения можно давать приложениям на Android

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

Разрешить нельзя запретить

У пользователей устройств на Android есть риск столкнуться с вирусной активностью в приложениях. В 2021 году «Лаборатория Касперского» выявила 1 451 660 вредоносных установочных пакетов. Нужно внимательно смотреть, какое ПО скачивается на смартфон.

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

Но есть категория «сомнительных» разрешений, к ним можно отнести восемь групп.

Календарь

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

Камера

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

Контакты

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

Геолокация

Приложение будет знать, где вы находитесь, какие места посещаете. А недобросовестная программа будет мониторить ваши перемещения 24/7 и сможет сообщить кому-то, когда вас нет дома.

Микрофон

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

Телефон

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

СМС-сообщения

Приложение сможет читать входящие сообщения и отправлять их. В худшем случае – за ваш счет.

Память

Приложение получает возможность управлять хранящимися на вашем телефоне файлами. Открывается доступ ко встроенной памяти и SD-карте.

На что соглашаться?

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

В одном из исследований ЦЦЭ тестировал 70 Android-приложений категории «Будильники» и выяснил, что 49% всех изученных программ злоупотребляют разрешениями. При установке приложение- будильник хотело получить доступ к данным о местоположении, просмотру местной Wi-Fi-сети и списку контактов.

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

Сергей Кузьменко

старший специалист Роскачества по тестированию цифровых продуктов

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


Особые разрешения

Например, к такой категории относится разрешение «Наложение поверх других окон». Такое право легко позволяет троянским программам показывать фишинговые окна вместо страниц оригинальных приложений.

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

В качестве вывода

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

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

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

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


Запросить специальные разрешения | Разработчики Android

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

Рисунок 1 : Экран доступа к специальному приложению в системе настройки.

Некоторые примеры специальных разрешений включают:

  • Планирование точных тревог.
  • Отображение и рисование поверх других приложений.
  • Доступ ко всем данным хранилища.

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

Настройки > Приложения > Доступ к специальному приложению .

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

Рабочий процесс

Чтобы запросить специальное разрешение, сделайте следующее:

  1. В файле манифеста вашего приложения объявите специальное разрешения, которые могут потребоваться вашему приложению запрос.
  2. Спроектируйте UX вашего приложения так, чтобы определенные действия в вашем приложении были связаны с определенными специальными разрешениями. Сообщите пользователям, какие действия могут потребовать, чтобы они предоставили вашему приложению разрешение на доступ к личным данным пользователя.
  3. Подождите, пока пользователь вызовет задача или действие в вашем приложении, требующее доступа к конкретному частному пользователю данные. В это время ваше приложение может запросить специальное разрешение, которое требуется для доступа к этим данным.
  4. Проверьте, предоставил ли пользователь уже специальное разрешение, которое вы приложение требует. Для этого используйте пользовательскую проверку каждого разрешения. функция. Если предоставлено, ваше приложение может получить доступ к частному пользователю данные. Если нет, перейдите к следующему шагу. Примечание: Вы должны проверить, иметь разрешение каждый раз, когда вы выполняете операцию, которая требует этого разрешение.
  5. Предоставьте пользователю обоснование в элементе пользовательского интерфейса, который четко объясняет, к каким данным пытается получить доступ ваше приложение и какие преимущества приложению может предоставить пользователю, если он предоставит специальное разрешение. Кроме того, поскольку ваше приложение отправляет пользователей в системные настройки для предоставления разрешения, а также включать краткие инструкции, объясняющие, как пользователи могут предоставить разрешение там. Пользовательский интерфейс с обоснованием должен предоставлять пользователю четкую возможность отказ от предоставления разрешения. После того, как пользователь подтвердит обоснование, переходите к следующему шагу.
  6. Запросите специальное разрешение, которое требуется вашему приложению для доступа личные данные пользователя. Это, вероятно, связано с намерением соответствующего страница в системных настройках, где пользователь может предоставить разрешение. В отличие от разрешения во время выполнения, есть нет диалогового окна разрешения всплывающих окон.
  7. Проверьте ответ пользователя – решили ли они разрешить или запретить разрешение — в методе onResume() .
  8. Если пользователь предоставил разрешение вашему приложению, вы можете получить доступ к приватному данные пользователя. Если вместо этого пользователь отказал в разрешении, изящно деградировать ваш опыт работы с приложением, чтобы он предоставляет функциональные возможности пользователю без информации, которая защищены этим разрешением.
Рисунок 2 : Рабочий процесс для объявления и запроса специальных разрешения на Android.

Запросить специальные разрешения

В отличие от разрешений во время выполнения, пользователь должен предоставить специальные разрешения на странице Special App Access в настройки системы. Приложения могут отправлять туда пользователей с помощью намерения, которое приостанавливает работу приложения. и запускает соответствующую страницу настроек для данного специального разрешения.

После того, как пользователь вернется в приложение, приложение может проверить, было ли предоставлено разрешение. предоставлено в Функция onResume() .

В следующем примере кода показано, как запросить SCHEDULE_EXACT_ALARMS специальное разрешение от пользователей:

 val alarmManager = getSystemService(Context.ALARM_SERVICE)
когда {
   // если разрешение предоставлено, приступаем к планированию точных тревог…
   alarmManager.canScheduleExactAlarms() -> {
       alarmManager.setExact(...)
   }
   иначе -> {
       // попросим пользователей предоставить разрешение на соответствующей странице настроек
       startActivity(Намерение(ACTION_REQUEST_SCHEDULE_EXACT_ALARM))
   }
}
 

Пример кода для проверки разрешения и обработки решений пользователя в onResume() :

 override fun onResume() {
   // . ..
если (alarmManager.canScheduleExactAlarms()) {
// переходим к действию (установка точных сигналов тревоги)
alarmManager.setExact(...)
}
еще {
// разрешение еще не утверждено. Отображение уведомления пользователя и изящная деградация
ваш опыт работы с приложением.
alarmManager.setWindow(...)
}
}
 

Передовой опыт и советы

В следующих разделах представлены некоторые рекомендации и рекомендации по запрос специальных разрешений.

Каждое разрешение имеет собственный метод проверки

Специальные разрешения работают иначе, чем среда выполнения разрешения. Вместо, обратитесь к справочнику API разрешений страницу и используйте пользовательскую проверку доступа функции для каждого специального разрешения. Примеры включают AlarmManager#canScheduleExactAlarms() для SCHEDULE_EXACT_ALARMS разрешение и Окружающая среда#isExternalStorageManager() для УПРАВЛЕНИЕ_ВНЕШНИМ_ХРАНИЛИЩЕМ разрешение.

Запрос в контексте

Подобно разрешениям во время выполнения, приложения должны запрашивать специальные разрешения в контексте, когда пользователь запрашивает определенное действие, требующее разрешение. Например, дождитесь запроса разрешения SCHEDULE_EXACT_ALARMS . пока пользователь не запланирует отправку электронного письма в определенное время.

Объясните запрос

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

Объявить разрешения приложения | Разработчики Android

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

Процесс запроса разрешения зависит от типа разрешение:

  • Если разрешение установлено во время установки разрешение, например обычное разрешение или разрешение подписи, разрешение предоставляется автоматически при время установки.
  • Если разрешение является средой выполнения разрешение или спец. разрешение, и если ваше приложение установлено на устройстве под управлением Android 6.0 (уровень API 23) или выше, необходимо запросить разрешение на выполнение или специальный разрешите себе.
Осторожно: Тщательно продумайте, какие разрешения объявлять в настройках вашего приложения. манифест. Добавляйте только те разрешения, которые нужны вашему приложению. Для каждого разрешения, которое ваши запросы к приложению, убедитесь, что оно предлагает очевидные преимущества для пользователей и что запрос делается так, как это очевидно для них.

Добавить объявление в манифест приложения

Чтобы объявить разрешение, которое может запросить ваше приложение, включите соответствующий элемент в файл манифеста вашего приложения. Например, приложение, которому требуется доступ к камере. есть эта строка в AndroidManifest.xml :

<манифест...>
      <использует-разрешение android:name="android.permission.CAMERA"/> 
    <приложение...>
        ...
    

 

Объявить оборудование необязательным

Некоторые разрешения, такие как КАМЕРА , пусть ваше приложение получить доступ к аппаратным компонентам, которые есть только у некоторых устройств Android. Если ваше приложение объявляет один из этих аппаратно-ассоциированных разрешения, подумайте, может ли ваше приложение работать на устройстве, на котором нет этого аппаратное обеспечение. В большинстве случаев аппаратное обеспечение является необязательным, поэтому лучше объявить оборудование как дополнительное, установив android: требуется от до false в вашем объявление, как показано в следующем фрагменте кода из файла AndroidManifest.xml :

<манифест...>
    <приложение>
        ...
    
       />
<манифест>
 
Осторожно: Если вы не установите android:required 9От 0047 до false в вашем декларации, Android предполагает, что для работы вашего приложения требуется аппаратное обеспечение. Затем система не позволяет некоторым устройствам установить ваш приложение.

Определить доступность оборудования

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

Котлин

// Проверьте, работает ли ваше приложение на устройстве с фронтальной камерой.
если (applicationContext.packageManager.hasSystemFeature(
        PackageManager.FEATURE_CAMERA_FRONT)) {
    // Продолжить с той частью рабочего процесса вашего приложения, которая требует
    // фронтальная камера.
} еще {
    // Изящно ухудшить работу вашего приложения.
}
 

Ява

// Проверьте, работает ли ваше приложение на устройстве с фронтальной камерой. 
если (getApplicationContext().getPackageManager().hasSystemFeature(
        PackageManager.FEATURE_CAMERA_FRONT)) {
    // Продолжить с той частью рабочего процесса вашего приложения, которая требует
    // фронтальная камера.
} еще {
    // Изящно ухудшить работу вашего приложения.
}
 

Объявить разрешения по уровню API

Объявить разрешение только на устройствах, которые поддерживают разрешения во время выполнения — это то есть устройства под управлением Android 6.0 (уровень API 23) или выше — включают <использует-разрешение-SDK-23> элемент вместо элемент.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *