6

ich die Anwendung Android 6.0 Runtime-Berechtigungen in eine App erfordern, die an Trägerdatenverbindung Zustandsänderungen überwacht. Ich versuchte zunächst nur die READ_PHONE_STATE aus dem Manifest zu entfernen zu prüfen, wo die App die Berechtigung erfordert. Zu meiner Überraschung stürzte die App überhaupt nicht ab.Seit Android 6.0 auf die PhoneStateListener.LISTEN_DATA_CONNECTION_STATE Änderungen hören scheint nicht mehr READ_PHONE_STATE Erlaubnis

Danach habe ich die gleiche Installation versucht, auf zwei vorge 6.0 Geräte, die tatsächlich auf sie haben zum Absturz bringen. Mir scheint, dass Android 6.0 die Erlaubnis nicht mehr benötigt. Gibt es eine Möglichkeit, dies zu bestätigen?

Die Linie unten ist derjenige, auf dem die Pre 6.0 Geräte Abstürze:

tm(TelephonyManager).listen(this, PhoneStateListener.LISTEN_DATA_CONNECTION_STATE); 

Antwort

13

Gibt es eine Möglichkeit, dies zu bestätigen?

Ja, das commit entfernt die Anforderung von READ_PHONE_STATE wenn die Art LISTEN_CALL_STATE, Ereignis registriert LISTEN_DATA_ACTIVITY und LISTEN_DATA_CONNECTION_STATE:

Do not enforce PHONE_STATE_PERMISSION to register listener PHONE_STATE_PERMISSION should not be required to register to the following event types: 
- PhoneStateListener.LISTEN_CALL_STATE 
- PhoneStateListener.LISTEN_DATA_ACTIVITY 
- PhoneStateListener.LISTEN_DATA_CONNECTION_STATE 

In case of LISTEN_CALL_STATE, an empty string should be passed instead of incomingNumber, when caller has no PHONE_STATE_PERMISSION. 

Bug: 21588537 Change-Id: I5b6d0308924f7e4cd13a983b8e0c9b3a5bbb119b 

Die Dokumentation auf developer.android.com wurde aktualisiert und zeigt richtig, dass die Genehmigung nicht erforderlich ist.

Wenn Ihr Code nicht braucht sich neben die Erlaubnis READ_PHONE_STATE aus anderen Gründen von LISTEN_DATA_CONNECTION_STATE können Sie Ihre AndroidManifest.xmlmaxSdkVersion zum uses-permission Hinzufügen ändern:

<uses-permission android:name="android.permission.READ_PHONE_STATE" android:maxSdkVersion="22" /> 
+0

Awesome! Danke, dass Sie mich auf das Commit hingewiesen haben! –

+1

Dank ... wäre es schön, wenn sie eine Nachricht hinterlassen, dass es bedarf noch der Genehmigung auf Android <6.0 als ich ein Update veröffentlicht diese Funktionalität hinzufügen und hatte keine Ahnung, LISTEN_CALL_STATE eine Erlaubnis, bevor Eibisch erfordert. – Flyview

Verwandte Themen