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


85

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

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

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

Я прикрепил снимок экрана своей учетной записи в магазине Google Play. введите описание изображения здесь

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

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.my.package.name">

    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:name=".utils.PreferenceManager"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:largeHeap="true"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".SplashScreen"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity
            android:name=".MainActivity"
            android:screenOrientation="portrait" />

        <activity
            android:name=".CategoryListActivity"
            android:screenOrientation="portrait" />
        <activity
            android:name=".ImagesActivity"
            android:screenOrientation="portrait" />

    </application>

</manifest>

1
Существовало ли разрешение в манифесте, до которого вы удалили и не загрузили новый apk?
Ежедневно

Нет, мой файл манифеста прикреплен, вы можете видеть.
Jiks

добавить разрешение на чтение состояния телефона в свой манифест
Noorul

Я уже пробовал добавлять и снова удалять. Ничего не работает
Нарендра Соратхия

2
Проверьте это: stackoverflow.com/a/42751979/3806413
0xAliHn

Ответы:


60

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

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

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

******Обновить
Настройки политики конфиденциальности в консоли Google Play изменились.

В консоли Google Play
выберите Присутствие в магазине> Контент приложения.
В разделе «Политика конфиденциальности».


19
Есть ли способ создать приватную политику из шаблона?
Даниэле

Надеюсь, вам нужно будет показать политику конфиденциальности, но у вас нет веб-сайта, вероятно, документ политики конфиденциальности будет текстовым, поэтому самый простой способ - мы можем создать текстовый документ со всей вашей политикой конфиденциальности и информацией, связанной с разрешениями, тогда вы можете загрузите его в любую бесплатную корзину, такую ​​как dropbox и т. д., тогда вы можете получить URL-адрес для использования при отправке в Play Store.
Дева

Я столкнулся с той же проблемой. я не использовал разрешение READ_PHONE_STATE, тогда почему оно говорит, что ваше приложение использует это?
Jaydip Kalkani

3
Благодаря AdMob. Их текущая версия 12.0.0 запрашивает READ_PHONE_STATE (ошибка), даже если в вашем приложении этого нет в манифесте. Итак, это все. Они сказали, что скоро выпустят обновление до 12.0.1.
blackJack

1
В настройках политики конфиденциальности в Google Play Console был изменен путь. Выберите Наличие в магазине> Содержимое приложения. В разделе «Политика конфиденциальности».
OnJohn

36

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

<uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove" />

и добавьте атрибут xmlns:tools="http://schemas.android.com/tools"в свой<manifest> тег, чтобы определить инструменты пространства имен

Из документации для tools:node="remove":

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


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

2
если использовать это, вы не сможете использовать READ_PHONE_STATE
Hoàng Đăng,

3
[Неустранимая ошибка]: 50: 95: Префикс «tools» для атрибута «tools: node», связанного с типом элемента «использует-разрешение», не привязан.
маниш кумар 02

Использовать это в заголовке манифеста? <manifest xmlns: android = " schemas.android.com/apk/res/android " xmlns: tools = " schemas.android.com/tools " ...... />
Мартин Б.

6

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

  1. Восстановите свое приложение для Android
  2. Нажмите «Ctrl + Shift + F» в студии Android (в основном выполните поиск в редакторе по вашему выбору).
  3. Найдите "READ_PHONE_STATE", вы найдете запись в восстановленном файле манифеста (а не в том, который вы создали изначально). По его пути вы можете узнать, из какой зависимости добавляется разрешение. введите описание изображения здесь


5

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

<uses-sdk
        android:minSdkVersion="9"
        android:targetSdkVersion="19" />

Большой! Это исправило это. Он добавлялся, когда я не указывал цель.
Tarun

5

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

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

<uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove" />

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


Спасибо :), но это сработает <uses-permission android: name = "android.permission.READ_PHONE_STATE" tools: node = "remove" />?
PriyankaChauhan


3

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

Обновите его до 12.0.1. Это должно исправить. Вы можете прочитать здесь


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

Это было исправлением для меня. В A-Studio вы можете просмотреть «объединенный манифест», и он указывает на библиотеки Google Play.
Мэтт Д.

2

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

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

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

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

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

public static final int READ_PHONE_STATE_PERMISSION = 100;

  if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M && checkSelfPermission(Manifest.permission.READ_PHONE_STATE)
                != PackageManager.PERMISSION_GRANTED) {
            requestPermissions(new String[]{Manifest.permission.READ_PHONE_STATE}, READ_PHONE_STATE_PERMISSION);
        }

затем переопределите onRequestPermissionsResultсвою деятельность

@Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        switch (requestCode){
            case READ_PHONE_STATE_PERMISSION: {
                if (grantResults[0] == PackageManager.PERMISSION_GRANTED){
                    //Permission granted do what you want from this point
                }else {
                    //Permission denied, manage this usecase
                }
            }
        }
    }

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


2
  1. Вероятно, вы используете PlayServices версии 9.6.0. Тогда вам стоит обновить его, это ошибка библиотеки. Больше информации здесь .

ИЛИ ЖЕ

  1. Добавить

    <uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove" />

в ваш файл манифеста.


1
Этот раздел посвящен проблеме с разрешением READ_PHONE_STATE. Почему android.permission.CAMERA?
Александр Марочко

2

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

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

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

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


1
Я думаю, что хорошая отправная точка для бесплатной политики конфиденциальности может быть найдена здесь: docracy.com/6516/mobile-privacy-policy-ad-sponsored-apps
Себастьяно Тоньяччи

Я получил то же письмо с вами, есть ли еще одна возможность, кроме рекламы и GAnalytics?
wanz

2

Вам следует отказаться от android.permission.READ_PHONE_STATEразрешения. Добавьте это в свой файл манифеста:

<uses-permission
    android:name="android.permission.READ_PHONE_STATE"
    tools:node="remove" />

1

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

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


1

Я нашел этот бесплатный веб-сайт, который разработает для вас политику и разместит ее:

https://www.freeprivacypolicy.com/

Затем добавьте его в магазин воспроизведения в разделе «Список магазинов» - внизу добавьте общедоступную ссылку на политику, полученную с https://www.freeprivacypolicy.com/.



0

Обновление 2018:

Для пользователей AdMob это вызывает AdMob версии 12.0.0 (на данный момент последняя версия). Он ошибочно запрашивает разрешение READ_PHONE_STATE, поэтому даже если вашему приложению не требуется разрешение READ_PHONE_STATE в манифесте, вы не сможете обновить свое приложение в консоли Google Play (вам будет предложено создать страницу политики конфиденциальности для вашего приложения, потому что вашему приложению требуется это разрешение).

Смотрите это: https://developers.google.com/android/guides/releases#march_20_2018_-_version_1200

Кроме того, они написали, что скоро опубликуют обновление до 12.0.1, исправляющее это.


0

Я столкнулся с той же проблемой и получил ошибку при загрузке apk в Google play. Я использовал рекламу в своем приложении, и в моем файле манифеста мне даже не упоминалось разрешение READ_PHONE_STATE. но все же я получил эту ошибку. Затем я меняю зависимости для рекламы в файле build.gradle. а затем это решило мою проблему. Они решили эту проблему в 12.0.1.

compile 'com.google.android.gms:play-services-ads:12.0.1'

0

Смотрите шаг за шагом, и вы поймете

public static String getVideoTitle(String youtubeVideoUrl) {
        Log.e(youtubeVideoUrl.toString() + " In GetVideoTitle Menu".toString() ,"hiii" );
        try {

            if (youtubeVideoUrl != null) {
                URL embededURL = new URL("https://www.youtube.com/oembed?url=" +
                        youtubeVideoUrl + "&format=json"
                );
                Log.e(youtubeVideoUrl.toString() + " In EmbedJson Try Function ".toString() ,"hiii" );
                Log.e(embededURL.toString() + " In EmbedJson Retrn value ".toString() ,"hiii" );
                Log.e(new JSONObject(IOUtils.toString(embededURL)).getString("provider_name").toString() + " In EmbedJson Retrn value ".toString() ,"hiii" );

                return new JSONObject(IOUtils.toString(embededURL)).getString("provider_name").toString();
            }
        } catch (Exception e) {
            Log.e(" In catch Function ".toString() ,"hiii" );

            e.printStackTrace();
        }
        return null;
    }

2
Пожалуйста, добавьте пояснения к вашему коду, чтобы другие могли извлечь из него уроки
Нико Хаасе,

0

Если вы используете пакет device_id для получения уникального идентификатора устройства, тогда он добавит android.permission.READ_PHONE_STATEбез вашего ведома, что в конечном итоге приведет к предупреждению Play Store.

Вместо этого вы можете использовать пакет device_info для той же цели без необходимости в дополнительных разрешениях. Проверьте эту тему SO


0

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

Чтобы добавить политику конфиденциальности в игровую консоль,

  1. Найдите и выберите Все приложения .

  2. Выберите приложение, в которое нужно добавить свою Политику конфиденциальности.

  3. Найдите Политику в конце страницы.

  4. Щелкните Содержимое приложения, чтобы изменить список для своего приложения.

  5. Найдите поле с надписью Политика конфиденциальности и поместите URL-адрес страницы вашей Политики конфиденциальности.

  6. Щелкните Сохранить, и все готово.

Примечание. У вас должна быть общедоступная веб-страница для размещения вашей Политики конфиденциальности. Google Play Store не будет размещать политику для вас.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.