android permission read phone state

In the latest beta version I just published to the Play Store, I notice that the READ_PHONE_STATE has been added since the previous version.

I haven’t added this myself. All I can recall doing since the previous version is using v9.6.0 of various play-services libraries (was v9.4.0):

Would this have done it? I can’t see it documented. Can I get rid of the permission?

And I’ve ensured that all the of the libraries I’m using match the main app, as per this answer. makes no difference in my case.

EDIT

OK based on this article, I’ve delved into my log output to find:

But nothing has changed in the jobdispatcher library (which I imported into my project as a gradle module) since the last version.

EDIT2

Here is a bit more from that log, and my feeling is that maybe it is due to the play-services library version as suspected?

The targetSdkVersion matches with the other answer linked above, but is there anything I can do in this situation, since the play-services library is not mine?

EDIT3

I found an answer. rather than delete this question I’ll leave it up, with solution, in case it’s useful for others (and in case someone else has a better solution!)

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

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

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

Я приложил скриншот к моей учетной записи в Google Play.

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

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

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

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

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

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

  1. Перестройте приложение для Android
  2. Нажмите «Ctrl + Shift + F» в студии Android (в основном выполните поиск в редакторе по вашему желанию).
  3. Найдите «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. Возможно, вы используете PlayServices версии 9.6.0. Затем вы должны его обновить, это ошибка библиотеки. Больше информации здесь .

К файлу манифеста.

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

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

If the device is running Android 6.0 or higher when im trying to get phone number using getLine1Number():

java.lang.SecurityException: Requires READ_PHONE_STATE: Neither user 10184 nor current process has android.permission.READ_PHONE_STATE. This is coming out.

I declared permission as :

2 Answers 2

In Android 6.0, you need to explicitly ask the user to grant the permissions. Just declaring it in the manifest isn’t enough.

This article in the docs is a great place to start learning the new model, but I’ll give a brief summary.

Every time you perform an action that requires a «dangerous permission,» you need to check if the permission is currently granted, because the user can revoke it at any time.

This can be done with the checkSelfPermission method.

You can request the permission with the requestPermissions method, as such

Where PERMISSION_READ_STATE is a constant integer defined by you to check in the callback method later.

You will then override onRequestPermissionsResult in your activity and see if the permission was granted. If it was, you can go ahead and preform the dangerous action.

Оцените статью