2016-09-23 3 views
9

In der neuesten Beta-Version, die ich gerade im Play Store veröffentlicht habe, stelle ich fest, dass die READ_PHONE_STATE seit der vorherigen Version hinzugefügt wurde.Warum wurde die Berechtigung READ_PHONE_STATE hinzugefügt?

Ich habe das selbst nicht hinzugefügt. wird mit v9.6.0 verschiedenen Play-Services-Bibliotheken (war v9.4.0) Alles, was ich seit der letzten Version erinnern kann tun:

compile 'com.google.android.gms:play-services-location:9.6.0' 
compile 'com.google.android.gms:play-services-places:9.6.0' 
compile 'com.google.android.gms:play-services-auth:9.6.0' 

das es getan hätte? Ich kann es nicht dokumentiert sehen. Kann ich die Erlaubnis loswerden?

Und ich habe sichergestellt, dass all die Bibliotheken, die ich verwende, die Haupt-App entsprechen, wie per this answer ... macht keinen Unterschied in meinem Fall.

EDIT

OK basierend auf this article, ich habe in meinem Log-Ausgabe vertieft zu finden:

ADDED from [Meteogram:jobdispatcher:unspecified] C:\Users\Me\AndroidStudioProjects\Meteogram\app\build\intermediates\exploded-aar\Meteogram\jobdispatcher\unspecified\AndroidManifest.xml:37:25-84 android:uses-permission#android.permission.READ_PHONE_STATE 

Aber nichts hat sich in der jobdispatcher Bibliothek geändert (die ich in meinem Projekt importiert als ein Gradle-Modul) seit der letzten Version.

EDIT2

ist hier ein bisschen mehr von diesem Protokoll, und mein Gefühl ist, dass vielleicht ist es aufgrund der Play-Services-Bibliothek Version als vermutet?

ADDED from [Meteogram:jobdispatcher:unspecified] C:\Users\Me\AndroidStudioProjects\Meteogram\app\build\intermediates\exploded-aar\Meteogram\jobdispatcher\unspecified\AndroidManifest.xml:37:17-87 
    android:name 
     ADDED from [Meteogram:jobdispatcher:unspecified] C:\Users\Me\AndroidStudioProjects\Meteogram\app\build\intermediates\exploded-aar\Meteogram\jobdispatcher\unspecified\AndroidManifest.xml:37:25-84 
android:uses-permission#android.permission.READ_PHONE_STATE 
IMPLIED from C:\Users\Me\AndroidStudioProjects\Meteogram\app\src\pro\AndroidManifest.xml:2:1-12:12 reason: com.google.android.gmscore.integ.client.location has a targetSdkVersion < 4 
activity#com.google.android.gms.common.api.GoogleApiActivity 

Die targetSdkVersion < 4 Begegnungen mit der anderen Antwort oben verlinkten, aber gibt es alles, was ich in dieser Situation tun können, da die Bibliothek Play-Dienste ist nicht von dir?

EDIT3

fand ich eine Antwort ... anstatt diese Frage löschen Ich werde es überlassen, mit der Lösung, falls es für andere nützlich ist (und im Fall, dass jemand anderes hat eine bessere Lösung!)

Edit4

Sieht aus wie es in 9.6.1 behoben wurde.

Antwort

15

Update # 2: Version 10.0.1 behebt das Problem erneut.

Aktualisierung: Dies tritt auch in Version 10.0.0 der Google Play-Dienste auf, wie in this post gemeldet.

Zurück Antwort:

Per this post in the Android Developers G+ Community, einer der Moderatoren (me) diesen Kommentar geschrieben:

ich dieses Problem intern gestern bereits gemeldet, wenn ein Entwickler darauf hingewiesen, hat das Update bereits intern gemacht, und ein aktualisiertes SDK kommt bald

Und das aktualisierte SDK ist jetzt verfügbar - verwenden Sie die 9.6.1 Google Play Dienste de Abhängigkeit.

+1

Sieht so aus als wäre es in '9.6.1' behoben worden ... Danke! – drmrbrewer

8

Ich fand schließlich this, die das gleiche Problem berichtet. Eine Abhilfe ist in Answer #3 erwähnt, die die Erlaubnis zu entfernen ist „manuell“ (meine Vermutung ist, dass die Genehmigung nur für sehr frühe Android-Versionen erforderlich ist, was für mich in Ordnung ist, da mein minSdk 16):

<manifest ... 
    xmlns:tools="http://schemas.android.com/tools" 
    ... > 

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

die Frage ist, bricht es etwas von der Google-Dienste-Funktionalität? Hast du irgendwelche Probleme festgestellt? – vanomart

+1

die Erlaubnis ist nicht einmal auf frühen Android-Versionen erforderlich. Was hier vor sich geht, ist, dass die Berechtigung in früheren Android-Versionen nicht einmal _existiert_ hat und Funktionen, für die diese Berechtigung jetzt erforderlich ist, überhaupt keine Berechtigung mehr erforderten. Die Erlaubnis wird hinzugefügt, wenn android Studio denkt, dass Sie alten Code haben, der nicht über die Erlaubnis weiß. –

Verwandte Themen