2017-09-11 3 views
0

In meiner Anwendung kann ich android.intent.action.PHONE_STATE empfangen, aber Intent.ACTION_NEW_OUTGOING_CALL unter android O nicht empfangen. Wenn ich android N oder android M alles gut arbeiten.Android O kann keine Übertragung empfangen Intent.ACTION_NEW_OUTGOING_CALL

I registrieren erste Sendung in AndroidManifest Datei und zweite in Vordergrund Service, aber keiner von ihnen kann Intent.ACTION_NEW_OUTGOING_CALL erhalten, können nur android.intent.action.PHONE_STATE erhalten.

Wenn jemand wissen, wie es zu beheben, bitte posten Sie Ihre Antwort, danke im Voraus.

Antwort

1

Aber ich bin immer noch verwirrt, weil mein Telefon mich nicht um die Erlaubnis bitten, aber gut funktionieren. Vielleicht ein Bug oder Feature von Android O?

Es ist ein Merkmal von Android O.

Früher, als eine Genehmigung (android.permission.READ_PHONE_STATE) einer Berechtigungsgruppe (PHONE) und gewährt der Nutzer es wünschen, werden Sie jede verwenden dürfen Erlaubnis (android.permission.PROCESS_OUTGOING_CALLS usw.) dieser Berechtigungsgruppe (PHONE) frei (ohne erneutes Anfordern eines Benutzers).

nun von Android O, auch wenn die App bereits die Erlaubnis (android.permission.READ_PHONE_STATE) einer Berechtigungsgruppe (PHONE) halten, müssen Sie requestPermission wieder für andere Erlaubnis (android.permission.PROCESS_OUTGOING_CALLS) derselben nennen Gruppe. Dies wird den Benutzer nicht dazu auffordern, die Berechtigung zu erteilen (android.permission.PROCESS_OUTGOING_CALLS), und die Berechtigung wird automatisch gewährt, wenn Sie bereits eine andere Berechtigung (android.permission.READ_PHONE_STATE) der gleichen Berechtigungsgruppe (PHONE) besitzen.

0

Nach einigen Test, ich fix it von add:

ActivityCompat.requestPermissions(activity, Manifest.permission.PROCESS_OUTGOING_CALLS, requestCode) 

Aber ich bin immer noch verwirrt, weil mein Telefon mich nicht fragen, die Erlaubnis zu geben, aber gut funktionieren. Vielleicht ein Bug oder Feature von Android O?

Verwandte Themen