Android Broadcast-Empfänger für gesendete SMS-Nachrichten?
-
13-09-2019 - |
Frage
ich eine BroadcastReceiver
erstellt und konfiguriert es mit einem android.provider.Telephony.SMS_RECEIVED
Action-Filter, so dass es jedes Mal das Telefon genannt wird erhält ein Text.
Gibt es ein Ereignis / Aktion oder andere Art und Weise für meine Anwendung benachrichtigt werden, sobald das Telefon sendet ein Text (vorzugsweise unabhängig von der Anwendung, die es sendet)?
Bisher ist die einzige Option, die ich sehe, ist der Content-Provider für content://sms/sent
abzufragen, die mich nicht einmal alle gesendeten Texte, weil Anwendungen können wählen, nicht um es dort zu setzen.
Lösung
Leider gibt es (noch) keine Möglichkeit, ein BroadcastReceiver
zu implementieren weil die Standard-SMS-Anwendung verwendet ein SmsManger
die Nachrichten zu senden, aber gibt konkrete interne Klassen für die gesendet und zug Absichten (SmsReceiver.class
und MessageStatusReceiver.class
respectively). Nicht, dass es ist ein Trost, aber Sie können den folgenden Kommentar in der Sms Anwendung Quelle :
// TODO: Fix: It should not be necessary to
// specify the class in this intent. Doing that
// unnecessarily limits customizability.
Die beste Alternative scheint Polling content://sms/sent
zu sein, möglicherweise eine mit ContentObserver
.