Погода М8. Разрешения

Начиная с версии Android 6 (Marshmallow) каждое приложение в процессе работы с сетью Интернет, с файлами, с местоположением пользователя и т.д. должно запрашивать у пользователя разрешение. Разрешения делятся обычные и опасные.

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

В данной статье я подробно опишу используемые данным приложением разрешения.

RECEIVE BOOT COMPLETED

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

READ/WRITE EXTERNAL STORAGE

Доступ к хранилищу устройства. Позволяет приложению получить доступ к хранилищу устройства (внутренняя память для хранения данных пользователя, SD карта). Доступ к памяти устройства нужен приложению для хранения своего кэша, а также для функции «Поделиться» (для хранения скриншотов приложения — .png файлов).

INTERNET

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

ACCESS NETWORK STATE

Разрешение на проверку состояния сети. Позволяет приложению проверять, подключено ли устройство к сети Интернет, получать сведения о свойствах подключения (тип, состояние и т.д.).

LOCATION

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

GET ACCOUNTS

Это самое «пугающее» всех разрешение. Оно на телефоне отображается, как разрешение на получение доступа к Контактам, хотя реально запрашивается доступ к списку аккаунтов устройства. Данное разрешение отображается как доступ к Контактам, потому что оно находится в группе разрешений android.permission-group.CONTACTS,  в которую входит три разрешения: наше (android.permission.GET_ACCOUNTS) и два других (android.permission.READ_CONTACTS — чтение контактов, android.permission.WRITE_CONTACTS — запись, редактирование ваших контактов). Доступа для чтения и редактирования ваших контактов данное разрешение приложению не дает. Все, к чему приложение будет иметь доступ, это список зарегистрированных на устройстве адресов электронной почты Google для получения информации, отключена ли реклама в приложении для вашей учетной записи.