Предупреждения, которые ваш 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" />
user3262030
источник
Большой! Это исправило это. Он добавлялся, когда я не указывал цель.
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
4

Это сторонняя библиотека. Вы можете найти виновника вbuild/outputs/logs/manifest-merger-release-report.txt

Матеуш Кафловски
источник
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/.

Нимитак
источник
1

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

https://app-privacy-policy-generator.firebaseapp.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 не будет размещать политику для вас.

Пареш Мангукия
источник