Oreo: Broadcast receiver funktioniert Nicht
Versuchte ich um Benachrichtigung-trigger für meine Anwendung, wenn der Benutzer einen neuen Aufruf. Ich bin registrieren Empfänger in meine Tätigkeit und zerstören es in onDestroy () - Methode. Folgende code-snippets für die Registrierung
registerReceiver(inComingCall = new IncomingCall(),new IntentFilter("android.intent.action.PHONE_STATE"));
Das Problem, das ich bin vor ist ich bekomme keine trigger überschreiben, onReceive () - Methode für den Broadcast receiver. Bitte lassen Sie mich wissen, ob neue Implementierungen oder die separate Möglichkeit, die ich tun sollte für den Empfang der broadcast-besonders für Oreo.
Vielen Dank im Voraus.
- haben Sie registriert-Berechtigung READ_PHONE_STATE in Ihrem manifest, und beantragte die Erlaubnis?
- Von Android O, die Berechtigung Verhalten geändert. Bitte schauen Sie in dieses : developer.android.com/about/versions/oreo/...
- Ja. Ich habe die Erlaubnis aber noch nicht arbeitet .Im folgenden ist der code <uses-permission android:name="android.die Genehmigung.READ_PHONE_STATE"></uses-permission - >
- Oreo haben einige Einschränkung in der Broadcast Receiver. überprüfen Sie diese blog-link medium.com/exploring-android/...
- dies ist die beste Lösung github.com/devggaurav/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich hoffe, dass Sie oder andere Entwickler finden dies sehr hilfreich.
Gibt es noch einige Ausnahmen wie
NEW_OUTGOING_CALL
ODERBOOT_COMPLETED
die können Sie immer noch in der manifest. Aber es ist eine gute Praxis zu implementieren runtime-Anwendung Kontext. Ich wollte meinePHONE_STATE
stets bereit für die erste eingehende und ausgehende Anrufe; bei jedem Neustart auch...Oben manifest.xml ich habe nicht
WRITE_EXTERNAL_STORAGE
undREAD_EXTERNAL_STORAGE
. Es hat automatisch von android studio, wie ich es umgesetzt-Laufzeit.Hier ist mein OnBoot Empfänger :
Hier WatchMan.java Vorder-Dienst implementiert, mit der Receiver-Laufzeit
Nun in den receiver vor dem Aufruf von einfügen von Telefonnummern in
sqlite
Datenbank-Tabelle; damit du es liest aus CatchNumbers.java service und welche Handlungen Sie durchführen will, die eingehende und ausgehende Nummern. Hoffe es hilft dir oder jemand anderesDie Lösung von Sandhya Sasane für mich auf die android-9-emulator, den BOOT_COMPLETED Benachrichtigung erhalten haben (entweder zwingt Sie per "adb" oder Neustart der emulator).
Aber auf einem echten Gerät der Huawei-P-Smart mit EMUI 9.1.0.119 nie passiert 🙁
Hatte ich auch diese Art von Problem, aber ich fand eine bessere Lösung:
Für eine vollständige Referenz, die Sie auch sehen können https://github.com/devggaurav/BroadcastReceiver-For-Naught-and-Oreo-devices