2014-12-15 3 views
5

Ich habe die Berechtigung READ_PHONE_STATE bemerkt, als ich die App in Google Play hochgeladen habe. Ich habe es nicht hinzugefügt und es ist nirgends in meinem Manifest oder einer anderen Datei meines Projekts geschrieben. (Ich habe alle Bibliotheken nach dieser Berechtigung durchsucht)Warum hat meine App die Berechtigung READ_PHONE_STATE, obwohl sie nicht in Manifest deklariert ist?

Meine App hatte diese Berechtigung in meinem vorherigen Build mit denselben Bibliotheken nicht. Seit dem letzten Build habe ich Android Studio auf Version 1 aktualisiert, mein Android SDK aktualisiert und ein paar Änderungen (in Code) an meiner App vorgenommen. Ich fordere die Geräte-ID nicht in meiner App an.

Meine App hat minSDK 14 und keine Anzeigen. Hier sind meine manifest Berechtigungen:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.VIBRATE" /> 
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 

Hier ist die apk file

Antwort

11

ich das Problem lösen konnte. Es ist ähnlich wie die Lösung von Reneph.

Ich fand, dass eine Bibliothek keine minSDK weder in der Build.gradle noch in der Manifest-Datei angegeben hatte. Nach dem Hinzufügen

defaultConfig { 
    minSdkVersion 14 
    targetSdkVersion 21 
} 

die Erlaubnis war weg. Ich weiß nicht, warum es ohne die Erlaubnis auf meinem vorherigen Build funktionierte (auch kein minSDK angegeben). Muss entweder das Android Studio 1.0 oder das Android SDK Update sein.


Android Entwickler-Dokumentation für READ_PHONE_STATE Erlaubnis:

Hinweis: Wenn sowohl Ihre minSdkVersion und targetSdkVersion Werte eingestellt sind auf 3 oder niedriger, wobei das System implizit gewährt die App diese Berechtigung. Wenn Sie diese Berechtigung nicht benötigen, stellen Sie sicher, dass targetSdkVersion 4 oder höher ist.

+0

Ich reproduzierte das nur mit einer anderen Konstellation: Ich hatte ein Bibliotheksprojekt integriert, das ein anderes MinSdk/Ziel von meinem Hauptprojekt spezifiziert. – Patrick

2

ich das Problem gefunden.

Ich hatte eine andere Bibliothek enthalten, die hatte minSdkVersion="4" (es ist nicht meine Bibliothek, aber meine App erfordert minSdkVersion="14"). Ich habe gerade die minSdkVersion der zusätzlichen Bibliothek auf 14 geändert und die Erlaubnis ist verschwunden!

erklärte ich die folgenden Berechtigungen in meiner App:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
<uses-permission android:name="com.android.vending.BILLING" /> 
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" /> 
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> 
<permission-group android:name="android.permission-group.STORAGE" /> 
Verwandte Themen