Gibt es eine Möglichkeit, eingehende Anrufe anzuhören, indem Sie BroadcastReceiver erweitern, um die Übertragung von OS zu hören, ohne PhoneStateIntentReceiver oder PhoneStateListener zu verwenden. Bitte sagen Sie mir auch, welche Aktionen und Berechtigungen im Manifest sein werden.
Ich habe versucht, mit wie folgt, aber es funktioniert nicht für eingehende Anrufe, sondern funktioniert für ausgehende
Die einzige .java-Datei der App ist wie folgt (die App nur eine .java-Datei und eine Manifest-Datei)
%Vor%Manifest
%Vor%Die Aktion, die Sie in Ihrem Manifest definiert haben, ist falsch. Dies ist eine Aktionsabsicht, die verwendet werden kann, um einen Anruf zu beantworten und eingehende Anrufe nicht zu überwachen.
Sie können zwei Rundfunkempfänger verwenden, die ACTION_PHONE_STATE_CHANGED und NEW_OUTGOING_CALL Broadcast-Absichten.
ACTION_PHONE_STATE_CHANGED wird empfangen, wenn ein neuer ankommender Anruf eingeht, ein Anruf angenommen oder aufgelegt wurde (siehe die Dokumentation für die mit dieser Absicht empfangenen EXTRAs).
Der NEW_OUTGOING_CALL wird empfangen, wenn ein neuer ausgehender Anruf auf Ihrem Gerät platziert wird.
Was die Berechtigungen betrifft, so denke ich, dass Sie es in Ihrem Manifest richtig verstanden haben (ich nehme an, dass die Berechtigung RECORD_AUDIO für etwas anderes in Ihrer Anwendung verwendet wird)
Hier ist meine Demo für Android-Unit-Test. Sie können sich darauf beziehen.
%Vor%Vergessen Sie nicht, Berechtigungen hinzuzufügen
%Vor%Tags und Links android android-broadcast