read phone state что это

RxPermissions: простой способ управления разрешениями в Android M

read phone state что это. Смотреть фото read phone state что это. Смотреть картинку read phone state что это. Картинка про read phone state что это. Фото read phone state что это

Давайте узнаем, как можно с легкостью настроить управление потоком разрешений с помощью всего нескольких строк кода.

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

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

RxPermissions

RxPermissions — это библиотека, которая позволяет использовать RxJava с моделью разрешений Android Marshmallow. Прежде чем углубиться в работу с этой библиотекой, рекомендую ознакомиться с основами Rx. Для тех, кто предпочитает не использовать Rx, существует несколько других хороших вариантов:

Цель использования этих библиотек — сохранить чистоту и безопасность нашего кода. С их помощью мы можем сократить количество строк шаблонного кода. А теперь давайте начнем углубленное знакомство с библиотекой RxPermissions.

Подробное руководство

Чтобы разобраться как можно лучше, давайте пройдем весь путь по шагам. Для использования этой библиотеки ваша версия SDK должна быть как минимум >= 11.

Шаг 1: Добавляем зависимости

В корень или в build.gradle на уровне проекта добавьте:

Далее добавьте зависимость RxPermission в build.gradle на уровне приложения:

Шаг 2: Инициализируем RxPermissions

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

Примечание: При инициализации RxPermission внутри фрагмента в качестве параметра конструктора нужно передать экземпляр фрагмента new RxPermissions(this), а не new RxPermissions(fragment.getActivity()). В противном случае можно столкнуться с исключением “java.lang.IllegalStateException: FragmentManager is already executing transactions”.

Шаг 3. Используем для запроса разрешения

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

Разве это не проще, чем использовать дополнительные классы и методы? Мы можем легко обработать результат и, основываясь на выходных данных, выполнять нужные нам действия. Например, выполнить что-либо при получении разрешения и нажать на “Больше не показывать этот диалог», чтобы перейти на страницу настроек, и так далее.

Шаг 4. Запрос группы разрешений

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

Получение индивидуального результата:

Получение группового результата:

Вот и все! Надеюсь, эта статья оказалась для вас полезной.

Источник

Предупреждения Ваш Apk использует разрешения, требующие политики конфиденциальности: (android.permission.READ_PHONE_STATE)

В манифесте не добавлен android.permission.READ_PHONE_STATE. разрешение.

Почему ошибка возникает, когда я загружаю новую версию ошибки apk, ниже.

В вашем приложении есть apk с кодом версии 1, который запрашивает следующие разрешения: android.permission.READ_PHONE_STATE. Приложения, использующие эти разрешения в APK, должны иметь политику конфиденциальности.

Я приложил скриншот к моей учетной записи в Google Play. read phone state что это. Смотреть фото read phone state что это. Смотреть картинку read phone state что это. Картинка про read phone state что это. Фото read phone state что это

Мой файл манифеста.

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

Необходимость политики конфиденциальности для приложения Если ваше приложение обрабатывает личные или конфиденциальные пользовательские данные

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

Просто попробуйте добавить эту строку в файл манифеста:

Зависимости, которые у вас есть в вашем проекте, добавят свои собственные разрешения. Пожалуйста, сделайте следующее, чтобы найти, откуда «READ_PHONE_STATE».

Это может быть из-за какой-либо третьей стороны, которая может включать это разрешение, поэтому из моего опыта в этом поле. Вы должны добавить политику конфиденциальности, относящуюся к этой конкретной информации, это означает, что если вы попросите разрешение на получение аккаунта в своем приложении, то вы должны объявить, что С вашим файлом политики конфиденциальности мы используем эти данные, т. Е. Адрес электронной почты или что-то еще с такими причинами, как вход в игру Google Play.

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

Если вы тестируете свое приложение на устройстве> android 6.0, вы также должны прямо попросить пользователя предоставить разрешение.

Как вы можете видеть здесь, READ_PHONE_STATE имеет опасный уровень.

Если разрешение имеет опасный уровень, пользователь должен принять или не разрешить это разрешение вручную. У вас нет выбора, вы ДОЛЖНЫ делать это

Для этого выполните следующие действия:

Если пользователь использует Android M и еще не предоставил разрешение, он попросит об этом.

Затем переопределить onRequestPermissionsResult в вашей деятельности

Вы должны прочитать эту статью, чтобы узнать больше об этом

Используете ли вы AdSense или другие объявления в своем приложении или, возможно, Google Analytics? Я думаю, что если вы это сделаете, даже если у вас нет андроида.permission.READ_PHONE_STATE в вашем манифестах, это добавляется в библиотеку объявлений.

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

Это письмо, которое я получил от Google:

Привет, разработчик Google Play, наши записи показывают, что ваше приложение xxx с именем пакета xxx в настоящее время нарушает нашу политику пользовательских данных в отношении личной и конфиденциальной информации. Проблема с политикой. Google Play требует от разработчиков предоставления правильной политики конфиденциальности, когда приложение запрашивает или обрабатывает конфиденциальную информацию о пользователе или устройстве. Ваше приложение запрашивает конфиденциальные разрешения (например, камеру, микрофон, учетные записи, контакты или телефон) или данные пользователя, но не включает действительную политику конфиденциальности. Необходимое действие. Включите ссылку на действующую политику конфиденциальности на странице «Список покупок» вашего приложения и в вашем приложении. Дополнительную информацию вы можете найти в нашем справочном центре. В качестве альтернативы вы можете отказаться от этого требования, удалив любые запросы на конфиденциальные разрешения или пользовательские данные. Если у вас есть дополнительные приложения в вашем каталоге, убедитесь, что они соответствуют нашим замечательным требованиям к раскрытию. Удалите эту проблему до 15 марта 2017 года, или административные действия будут предприняты для ограничения видимости вашего приложения, вплоть до удаления из Play Маркета. Спасибо, что помогли нам обеспечить прозрачный и прозрачный опыт для пользователей Google Play. С уважением, команда Google Play

Вам нужно указать min и target sdk версию target sdk в файле манифеста.
Если не android.permission.READ_PHONE_STATE будет автоматически добавляться при экспорте вашего файла apk.

1. Вам нужно создать страницу политики конфиденциальности на своем веб-сайте и обновить политику конфиденциальности для разрешений, которые вы запрашиваете.

2. Обновите новый SDK, удалите ненужные разрешения и повторно подайте приложение.

Источник

Страшная сказка на ночь для пользователей Android

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

Все началось с того, что мне прислали на проверку сайт. По виду — обычный варезный блог с громкими заголовками типа “Бесплатные обои и картинки для андроида”, “Самые умные программы на андроид” и тому подобное. Сразу бросилось в глаза, что во всех постах одинаковые комментарии, оставленные “разными людьми”. Содержание примерно следующее:

— Сайт просит ввести номер телефона, это нормально?
— Да, это для регистрации, проверка, что ты не бот.
— О, круто, спасибо!

В общем факт обмана виден сразу, но я решил копать дальше. При попытке загрузить приложение из любого поста с помощью стационарного компьютера, меня перекидывает на другой ресурс. Ссылка вида http://****/**/?sub_id=* (ага, возможно партнерочка). Там мне предлагают купить за деньги Google Chrome (и ведь ведутся же люди!).

Допустим… Но ведь ресурс посвящен приложениям для Android устройств, значит, нужно попробовать зайти с девайса. Как и следовало ожидать: вместо предложения купить супер-браузер загружается install.apk. “Вот это уже интересно” — подумал я и не ошибся.

Первое, что бросилось в глаза — огромное количество потенциально опасных разрешений.

read phone state что это. Смотреть фото read phone state что это. Смотреть картинку read phone state что это. Картинка про read phone state что это. Фото read phone state что этоread phone state что это. Смотреть фото read phone state что это. Смотреть картинку read phone state что это. Картинка про read phone state что это. Фото read phone state что это

Не слабый набор, правда? Мне стало интересно, что же приложение делает со всеми этими разрешениями.

Не буду описывать сам процесс декомпиляции, лишь упомяну, что использовал apktools, dex2jar, JD-GUI и jad. В итоге я получил декомпилированные ресурсы и набор классов.

Первое, на что я обратил внимание, это, разумеется, AndroidManifest.xml.

Коротко о разрешениях:

READ_PHONE_STATE — получение информации о телефоне (номер телефона, серийник, информация о вызовах);
SEND_SMS — отправка sms-сообщений;
RECEIVE_SMS — прием sms-сообщений и последующее удаление их (именно поэтому приоритет у MainReceiver наивысший);
INTERNET — использование интернета;
WAKE_LOCK — отключает спящий режим (видимо для повышения стабильности :);
ACCESS_NETWORK_STATE — информация о сетевых соединениях;
RECEIVE_BOOT_COMPLETED — получать сообщения о загрузке устройства, что позволяет выполнять приложение при запуске;
WRITE_EXTERNAL_STORAGE — запись/удаление информации на карте памяти;
INSTALL_PACKAGES — приложение может устанавливать или обновлять пакеты;
DELETE_PACKAGES — приложение может удалять пакеты;
READ_CONTACTS — доступ к контактам;
CALL_PHONE — осуществляет телефонные вызовы;
CALL_PRIVILEGED — осуществляет телефонные вызовы, в том числе по экстренным номерам;
GET_TASKS — получение данных о запущенных приложениях;
SYSTEM_ALERT_WINDOW — показывает сообщения поверх всех окон;
RESTART_PACKAGES — способно завершать фоновые процессы других приложений (официальное описание);
KILL_BACKGROUND_PROCESSES — способно завершать фоновые процессы других приложений (официальное описание);
READ_LOGS — чтение конфиденциальных данных из журнала.

Так же есть ресивер, который срабатывает на следующие намерения:

SMS_RECEIVED — получено sms-сообщение;
custom.alarm — внутреннее событие;
BOOT_COMPLETED — загрузка завершена;
USER_PRESENT — пользователь разблокировал устройство;
PHONE_STATE — изменение состояния сотовой сети (не знаю, как выразиться корректней, также позволяет мониторить вызовы пользователя);
SCREEN_OFF — при отключении экрана;
SCREEN_ON — при включении экрана.

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

Работа приложения

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

При детальном анализе можно увидеть, что сообщение отправляется сразу, а не после нажатии кнопки “Далее” (как это обычно принято). Лицензионное соглашение есть, но оно очень хорошо запрятано. Но отправка сообщения — это не самая страшная проблема. Помните большое количество разрешений? Давайте посмотрим, зачем они все-таки нужны приложению.

Чтобы сэкономить место и ваше время, я не буду выкладывать MainReceiver. Сразу скажу, что он обрабатывает и удаляет (!) входящие сообщения, а в случае необходимости еще и отвечает.

Самое интересное находится в MainService. При запуске сервис подключается к серверу, запрашивает оттуда данные, получает нечто в json и при успешном ответе запускает метод executeCommands(jsonobject1). И тут начинается магия:

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

Резюме

На хабре не тот контингент, которому стоит читать нотацию на тему “не ставьте не проверенные приложения”, поэтому данную часть своего выступления я опущу.

Первые вредоносные приложения просто отправляли платные sms-сообщения, потом начали рассылать себя всем из списка контактов, а теперь — мы имеем полноценную троянскую лошадь, которую можно дергать за поводья удаленно. Эволюция…

Перечислю еще раз вкратце (для тех, кто пролистал, не читая код с моими комментариями) что умеет делать приложение:

1. Менять URL основного сервера
2. Устанавливать sms-фильтры (удалять то, что попадает в фильтр еще до того, как пользователь успеет получить уведомление)
3. Удалять сообщения
4. Отправлять сообщения
5. Выполнять http-запросы (botnet. )
6. Проверять наличие обновлений и обновляться
7. Удалять произвольные пакеты
8. Отправлять пользователю нотификации
9. Открывать произвольный URL
10. Сливать контакты на сервер
11. Сливать список установленных приложений на сервер
12. Выполнять произвольные вызовы (например, в Замбези)
13. Использовать Twitter в качестве альтернативного способа обновления некоторых данных (к сожалению, декомпиляция прошла с ошибками и не все файлы удалось просмотреть).

Источник

Работа с Runtime Permissions в Android 6. Получаем разрешения программно

В этой статье мы рассмотрим работу с получением разрешений во время выполнения, которые были добавлены в Android 6 (API 23).

Runtime Permissions в Android API 23. Теория

Одним из основных изменений в Android API 23 является новая система разрешений. В более ранних версиях разрешения объявляли в файле AndroidManifest.xml и больше никаких действий не требовалось. Но с Android 6 мы должны запрашивать разрешения из категории «Опасных» во время выполнения.

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

Процесс получения разрешений:

1). Узнать, получено ли в приложении необходимое разрешение. Например, так:

2). Если разрешения нет, то запросить его с помощью метода requestPermissions() :

Сразу несколько разрешений можно запросить так:

3). Обработать результат запроса на получение разрешений можно так:

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

Давайте на примере посмотрим на разные способы получения разрешений.

Runtime Permissions в Android API 23. Практика

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

Идем в файл AndroidManifest.xml и добавляем разрешение на работу со звонками:

Теперь идем в MainActivity.java и описываем процесс получения разрешений и обработку результатов:

Если запустить приложение, то получим такой результат:

read phone state что это. Смотреть фото read phone state что это. Смотреть картинку read phone state что это. Картинка про read phone state что это. Фото read phone state что это

На первом экране мы запрашиваем разрешение. 2 — успешное их получение. 3 — Разрешение не получено

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

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

Новую функциональность я специально выделил:

Источник

Предупреждения ваш Apk использует разрешения, которые требуют Политики конфиденциальности: (android.разрешение.ЧИТАТЬ СОСТОЯНИЕ ТЕЛЕФОНА)

в манифесте не добавлен android.разрешение.А дальше. разрешение.

почему ошибка возникает, когда я загружаю новую ошибку версии apk ниже.

ваше приложение имеет apk с кодом версии 1, который запрашивает следующие разрешения: android.разрешение.А дальше. Приложения, использующие эти разрешения в APK, должны иметь набор политик конфиденциальности.

я прикрепил снимок экрана моего магазина Google play счет. read phone state что это. Смотреть фото read phone state что это. Смотреть картинку read phone state что это. Картинка про read phone state что это. Фото read phone state что это

мой файл манифеста.

17 ответов

манифест вашего приложения.xml, имеющий эти разрешения на доступ к информации с вашего устройства, но у вас нет ссылки политики конфиденциальности при отправке в play store. так ты получаешь это предупреждение.

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

просто попробуйте добавить эту строку в ваш файл манифеста:

и добавить атрибут xmlns:tools=»http://schemas.android.com/tools» на тег для определения инструментов пространства имен

С документация на tools:node=»remove» :

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

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

необходимо указать min и target sdk версия в файле манифеста.
Если не android.permission.READ_PHONE_STATE будет добавлен автоматически при экспорте файла apk.

в настоящее время некоторые люди сталкиваются с той же проблемой из-за использования 12.0.0 версия AdMob lib.

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

также может сделать это

надеюсь, это поможет вам Что вы можете сделать для этого предупреждения создайте политику конфиденциальности для вашего приложения и прикрепите ее с помощью store listing.

если вы тестируете приложение на устройстве > android 6.0, вы также должны четко попросить пользователя предоставить разрешение.

Как видите,здесь READ_PHONE_STATE есть опасный уровень.

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

для этого из вашей деятельности выполните следующий код:

если пользователь использует Android M и не предоставил разрешение, но он попросит его.

переопределить onRequestPermissionsResult в работе

следует читать в этой статье чтобы узнать больше об этом

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

Это письмо, которое я получил от Google об этом:

Привет Google Play Developer, наши записи показывают, что ваше приложение, xxx, с пакет ХХХ, в настоящее время нарушает нашу политику в отношении пользовательских данных Личная и конфиденциальная информация. Вопрос политики: Google Play требует разработчики предоставляют действительную политику конфиденциальности, когда приложение запрашивает или обрабатывает конфиденциальную информацию пользователя или устройства. Ваши пожелания приложение чувствительные разрешения (например, камера, микрофон, учетные записи, контакты или телефон) или данные пользователя, но не включает действительную политику конфиденциальности. Необходимые действия: включите ссылку на действительную политику конфиденциальности страница приложения в магазине и в вашем приложении. Вы можете найти больше сведения в нашем Справочном центре. Кроме того, вы можете отказаться от этого требование путем удаления любых запросов на конфиденциальные разрешения или пользователя данные. Если у вас есть дополнительные приложения в каталоге, пожалуйста, убедитесь они соответствуют нашим выдающимся требованиям раскрытия информации. Пожалуйста решить эту проблему до 15 марта 2017 года, или административное действие будет принято, чтобы ограничить видимость вашего приложения, вплоть до удаления из магазина Play. Спасибо за помощь нам обеспечить ясность и прозрачный опыт для пользователей Google Play. С Уважением, Google Play Команда

Источник

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

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