Warnungen Ihre Apk verwendet Berechtigungen, für die eine Datenschutzrichtlinie erforderlich ist: (android.permission.READ_PHONE_STATE)


82

Im Manifest nicht hinzugefügt android.permission.READ_PHONE_STATE. Genehmigung.

Warum ein Fehler auftritt, wenn ich eine neue apk-Version hochlade, ist unten aufgeführt.

Ihre App hat eine apk mit Versionscode 1, die die folgenden Berechtigungen anfordert: android.permission.READ_PHONE_STATE. Für Apps, die diese Berechtigungen in einem APK verwenden, muss eine Datenschutzrichtlinie festgelegt sein.

Ich habe einen Screenshot meines Google Play Store-Kontos angehängt. Geben Sie hier die Bildbeschreibung ein

meine Manifestdatei.

<?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
Gab es die Berechtigung in dem Manifest, vor dem Sie die neue apk entfernt und nicht hochgeladen haben?
Aconnelly

Nein, meine Manifestdatei wurde angehängt.
Jiks


Ich habe bereits versucht, etwas hinzuzufügen und wieder zu entfernen. Nichts funktioniert
Narendra Sorathiya

2
Überprüfen Sie dies heraus: stackoverflow.com/a/42751979/3806413
0xAliHn

Antworten:


56

Die manifest.xml Ihrer App verfügt über diese Berechtigung, auf Informationen von Ihrem Gerät aus zuzugreifen, aber Sie haben beim Senden im Play Store keinen Link zu Datenschutzrichtlinien. Sie erhalten also diese Warnung.

Benötigen Sie Datenschutzbestimmungen für die App? Wenn Ihre App mit persönlichen oder sensiblen Benutzerdaten umgeht

Durch Hinzufügen einer Datenschutzrichtlinie zur Store-Liste Ihrer App erhalten Sie Transparenz darüber, wie Sie sensible Benutzer- und Gerätedaten behandeln.

****** Update
Die Einstellung der Datenschutzrichtlinie in Google Play Console hat den Speicherort geändert.

Wählen Sie in der Google Play Console
Store-Präsenz> App-Inhalt aus.
Unter "Datenschutzerklärung".


18
Gibt es eine Möglichkeit, die private Richtlinie aus einer Vorlage zu erstellen?
Daniele

Ich hoffe, Sie müssen die Datenschutzrichtlinie anzeigen, haben aber keine Website. Wahrscheinlich handelt es sich bei dem Datenschutzdokument um Textinhalt. Der einfachste Weg ist also, ein Word-Dokument mit all Ihren Datenschutzrichtlinien und erlaubnisbezogenen Informationen zu erstellen, als Sie können Laden Sie es auf einen beliebigen kostenlosen Eimer wie eine Dropbox usw. hoch, und Sie können die URL für die Einreichung im Play Store abrufen.
Deva

Ich stehe vor dem gleichen Problem. Ich habe die READ_PHONE_STATE-Berechtigung nicht verwendet. Warum heißt es dann, dass Ihre App diese verwendet?
Jaydip Kalkani

2
Wegen AdMob. Ihre aktuelle Version 12.0.0 fordert READ_PHONE_STATE (Fehler) an, auch wenn Ihre App es nicht im Manifest hat. So, das wars. Sie sagten, dass sie bald ein Update auf 12.0.1 veröffentlichen werden.
BlackJack

1
Die Einstellung der Datenschutzrichtlinie in Google Play Console wurde geändert. Wählen Sie Präsenz präsentieren> App-Inhalt. Unter "Datenschutzerklärung".
OnJohn

35

Versuchen Sie einfach, diese Zeile zu Ihrer Manifestdatei hinzuzufügen:

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

und fügen Sie xmlns:tools="http://schemas.android.com/tools"Ihrem <manifest>Tag ein Attribut hinzu , um Namespace-Tools zu definieren

Aus der Dokumentation für tools:node="remove":

Entfernen Sie dieses Element aus dem zusammengeführten Manifest. Obwohl es so aussieht, als ob Sie dieses Element stattdessen einfach löschen sollten, ist die Verwendung dieses Elements erforderlich, wenn Sie ein Element in Ihrem zusammengeführten Manifest entdecken, das Sie nicht benötigen, und es wurde von einer Manifestdatei mit niedrigerer Priorität bereitgestellt, die außerhalb Ihrer Kontrolle liegt (z als importierte Bibliothek).


2
Dies umgeht auch die bösen Berechtigungswarnungen, die sonst
angezeigt

2
Wenn Sie dies verwenden, können Sie READ_PHONE_STATE
Hoàng Đăng

3
[Schwerwiegender Fehler]: 50: 95: Das Präfix "tools" für das Attribut "tools: node", das einem Elementtyp "using-allow" zugeordnet ist, ist nicht gebunden.
Manish Kumar

Verwenden Sie dies im Manifest-Header? <manifest xmlns: android = " schemas.android.com/apk/res/android " xmlns: tools = " schemas.android.com/tools " ...... />
Martin B

6

Die Abhängigkeiten, die Sie in Ihrem Projekt haben, fügen ihre eigenen Berechtigungen hinzu. Bitte gehen Sie wie folgt vor, um herauszufinden, woher "READ_PHONE_STATE" kommt.

  1. Erstellen Sie Ihre Android-Anwendung neu
  2. Drücken Sie "Strg + Umschalt + F" in Android Studio (führen Sie im Grunde eine Suche alle im Editor Ihrer Wahl).
  3. Wenn Sie nach "READ_PHONE_STATE" suchen, finden Sie den Eintrag in einer neu generierten Manifestdatei (nicht in der ursprünglich erstellten). Anhand des Pfades können Sie erkennen, aus welcher Abhängigkeit die Berechtigung hinzugefügt wird. Geben Sie hier die Bildbeschreibung ein


5

Sie müssen die minund target sdk-Version in der Manifestdatei angeben .
Wenn nicht, android.permission.READ_PHONE_STATEwird das beim Exportieren Ihrer APK-Datei automatisch hinzugefügt.

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

Großartig! Das hat es behoben. Es wurde hinzugefügt, als ich kein Ziel angegeben hatte.
Tarun

4

Dies kann an einer Drittanbieter-Bibliothek liegen, die diese Berechtigung enthält. Aus meiner Erfahrung in diesem Bereich müssen Sie die Datenschutzrichtlinie zu diesen bestimmten Informationen hinzufügen. Wenn Sie in Ihrer App nach der Berechtigung für Konten fragen, müssen Sie dies deklarieren Mit Ihrer Datenschutzrichtlinie verwenden wir diese Daten, z. B. die E-Mail-Adresse oder was auch immer, mit Gründen, um sich bei Google Play anzumelden.

Kann das auch

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

Hoffe, dies wird Ihnen helfen, was Sie für diese Warnung tun können. Erstellen Sie Datenschutzrichtlinien für Ihre App und fügen Sie diese der Store-Liste bei .


Danke :) aber das wird funktionieren <Verwendungsberechtigung android: name = "android.permission.READ_PHONE_STATE" tools: node = "remove" />?
PriyankaChauhan

4

Es ist eine Drittanbieter-Bibliothek. Sie können den Täter in findenbuild/outputs/logs/manifest-merger-release-report.txt


3

Derzeit haben einige 12.0.0Benutzer das gleiche Problem, da sie die Version von AdMob lib verwenden.

Aktualisieren Sie es auf 12.0.1. Dies sollte das Problem beheben. Sie können mehr lesen hier


Links zu externen Ressourcen werden empfohlen. Fügen Sie jedoch einen Kontext um den Link hinzu, damit Ihre Mitbenutzer eine Vorstellung davon haben, was es ist und warum es dort ist. Zitieren Sie immer den relevantesten Teil eines wichtigen Links, falls die Zielwebsite nicht erreichbar ist oder dauerhaft offline geht.
Baduker

Dies war die Lösung für mich. In A-Studio können Sie das "zusammengeführte Manifest" anzeigen und es verweist auf die Google Play-Bibliotheken.
Matt D.

2

Wenn Sie Ihre App auf einem Gerät> Android 6.0 testen, müssen Sie den Benutzer auch ausdrücklich bitten, die Berechtigung zu erteilen.

Wie Sie hier sehen können ,READ_PHONE_STATE haben Sie ein gefährliches Niveau.

Wenn eine Berechtigung eine gefährliche Stufe hat, muss der Benutzer diese Berechtigung manuell akzeptieren oder nicht. Sie haben keine andere Wahl haben, Sie muss dies tun

Führen Sie dazu in Ihrer Aktivität den folgenden Code aus:

Wenn der Benutzer Android M verwendet und die Berechtigung noch nicht erteilt hat, wird er danach gefragt.

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);
        }

dann überschreiben Sie onRequestPermissionsResultin Ihrer Aktivität

@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
                }
            }
        }
    }

Sie sollten diesen Artikel lesen , um mehr darüber zu erfahren


2
  1. Wahrscheinlich verwenden Sie PlayServices der Version 9.6.0. Dann sollten Sie es aktualisieren, es ist der Fehler der Bibliothek. Mehr Infos hier .

ODER

  1. Hinzufügen

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

zu Ihrer Manifestdatei.


1
In diesem Thema geht es um das Berechtigungsproblem READ_PHONE_STATE. Warum android.permission.CAMERA?
Alexander Marochko

2

Verwenden Sie AdSense oder andere Anzeigen in Ihrer App oder möglicherweise Google Analytics? Ich denke, wenn Sie dies tun, wird dies von der Anzeigenbibliothek hinzugefügt, auch wenn Sie das android.permission.READ_PHONE_STATE nicht in Ihrem Manifest haben.

Es gibt kostenlose Vorlagen, mit denen Sie möglicherweise eine Datenschutzrichtlinie erstellen.

Dies ist die E-Mail, die ich von Google darüber erhalten habe:

Hallo Google Play-Entwickler, unsere Aufzeichnungen zeigen, dass Ihre App xxx mit dem Paketnamen xxx derzeit gegen unsere Benutzerdatenrichtlinie in Bezug auf persönliche und sensible Informationen verstößt. Richtlinienproblem: Bei Google Play müssen Entwickler eine gültige Datenschutzrichtlinie angeben, wenn die App vertrauliche Benutzer- oder Geräteinformationen anfordert oder verarbeitet. Ihre App fordert vertrauliche Berechtigungen (z. B. Kamera, Mikrofon, Konten, Kontakte oder Telefon) oder Benutzerdaten an, enthält jedoch keine gültigen Datenschutzrichtlinien. Erforderliche Aktion: Fügen Sie auf der Store Listing-Seite Ihrer App und in Ihrer App einen Link zu einer gültigen Datenschutzrichtlinie ein. Weitere Informationen finden Sie in unserer Hilfe. Alternativ können Sie diese Anforderung deaktivieren, indem Sie alle Anforderungen für vertrauliche Berechtigungen oder Benutzerdaten entfernen. Wenn Sie zusätzliche Apps in Ihrem Katalog haben, Bitte stellen Sie sicher, dass sie unseren Anforderungen für die Offenlegung von Prominenten entsprechen. Bitte beheben Sie dieses Problem bis zum 15. März 2017, da sonst administrative Maßnahmen ergriffen werden, um die Sichtbarkeit Ihrer App bis hin zum Entfernen aus dem Play Store einzuschränken. Vielen Dank, dass Sie uns dabei helfen, Google Play-Nutzern ein klares und transparentes Erlebnis zu bieten. Grüße, das Google Play Team


1
Ich denke, ein guter Ausgangspunkt für eine kostenlose Datenschutzrichtlinie finden Sie hier: docracy.com/6516/mobile-privacy-policy-ad-sponsored-apps
Sebastiano Tognacci

Ich erhalte dieselbe E-Mail mit Ihnen. Gibt es eine andere Möglichkeit als Ads und GAnalytics?
Wanz

2

Sie sollten die android.permission.READ_PHONE_STATEErlaubnis fallen lassen . Fügen Sie dies Ihrer Manifestdatei hinzu:

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

1

1.Sie müssen eine Datenschutzrichtlinie auf Ihrer Website erstellen und Ihre Datenschutzrichtlinie für die von Ihnen angeforderten Berechtigungen aktualisieren.

2. Aktualisieren Sie das neue SDK, entfernen Sie unerwünschte Berechtigungen und senden Sie die App erneut.




0

Update 2018:

Für AdMob-Benutzer führt dies zu AdMob Version 12.0.0 (derzeit letzte Version). Es wird fälschlicherweise die READ_PHONE_STATE-Berechtigung angefordert. Selbst wenn Ihre App im Manifest keine READ_PHONE_STATE-Berechtigung benötigt, können Sie Ihre App in der Google Play Console nicht aktualisieren (Sie werden aufgefordert, eine Datenschutzrichtlinie für Ihre App zu erstellen. weil Ihre App diese Erlaubnis benötigt).

Siehe hierzu: https://developers.google.com/android/guides/releases#march_20_2018_-_version_1200

Außerdem haben sie geschrieben, dass sie bald ein Update auf 12.0.1 veröffentlichen werden, um dies zu beheben.


0

Ich hatte das gleiche Problem und bekam den Fehler beim Hochladen von apk auf Google Play. Ich habe Anzeigen in meiner App verwendet und in meiner Manifestdatei wurde nicht einmal die Berechtigung READ_PHONE_STATE erwähnt. aber dennoch habe ich diesen Fehler bekommen. Dann ändere ich die Abhängigkeiten für Anzeigen in der Datei build.gradle. und dann löste es mein Problem. Sie haben dieses Problem in 12.0.1 gelöst.

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

0

Wenn Sie Schritt für Schritt sehen, werden Sie verstehen

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
Bitte fügen Sie Ihrem Code einige Erklärungen hinzu, damit andere daraus lernen können
Nico Haase

0

Wenn Sie das Paket device_id verwenden , um die eindeutige Geräte-ID abzurufen , wird android.permission.READ_PHONE_STATEohne Ihr Wissen eine hinzugefügt, die schließlich zur Play Store-Warnung führt.

Stattdessen können Sie das Paket device_info für denselben Zweck verwenden, ohne die zusätzliche Berechtigung zu benötigen. Überprüfen Sie diesen SO-Thread


0

Wenn Sie die Nachricht sorgfältig lesen, werden Sie feststellen, dass Sie die Berechtigungen wie Kamera, Mikrofon, Kontakte, Speicher und Telefon usw. verwenden und keine Datenschutzrichtlinie angeben. In diesem Fall müssen Sie eine Datenschutzrichtlinie angeben. Weitere Informationen zur Android-Datenschutzrichtlinie finden Sie auf Google

So fügen Sie die In-Play-Konsole für Datenschutzrichtlinien hinzu:

  1. Suchen Sie alle Apps und wählen Sie sie aus .

  2. Wählen Sie die Anwendung aus, zu der Sie Ihre Datenschutzrichtlinie hinzufügen möchten.

  3. Suchen Sie die Richtlinie am Ende der Seite.

  4. Klicken Sie auf App-Inhalt , um die Liste für Ihre App zu bearbeiten.

  5. Suchen Sie das Feld mit der Bezeichnung Datenschutzrichtlinie und geben Sie die URL der Seite Ihrer Datenschutzrichtlinie ein

  6. Klicken Sie auf Speichern und los geht's.

Hinweis: Sie benötigen eine öffentliche Webseite, um Ihre Datenschutzrichtlinie zu hosten. Der Google Play Store hostet die Richtlinie nicht für Sie.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.