Leisten Sie den letzten Anruf auf Calllog mit einem Service
-
23-12-2019 - |
Frage
Ich mache ein Programm, um den Calllog an einen Server zu senden, ich habe einen Dienst erstellt, der mit der folgenden Methode eine Umfrage des Telefonstatus erstellt. Diese Methode wird als Oncreate bezeichnet.
generasacodicetagpre.Die Methode aufrufen, prüfen, ob der Anruf begonnen hat, wenn der Fall der Fall ist, wenn er die Dauer dieses Anrufs des Calllogs erhalten, benutze ich Calllog, weil ich nicht bestimmt habe, wann die ausgehenden Anrufe beginnt.
generasacodicetagpre.Ich habe die Methode-Getduration eingefügt, ich habe es verwendet, um die Dauer des Anrufs in Calllog zu erhalten.
generasacodicetagpre.Mein Problem ist, dass Getduration mir nicht die letzte Anrufdauer besorgt, obwohl ich den vorherigen Anruf erwerbst. Ich habe versucht, mehr Zeit zu warten, aber ich erhalte das gleiche Ergebnis.
--- edit ---
Ich habe den Code geändert, um ContentObServer zu verwenden, aber ich habe das gleiche Ergebnis. Ich ersteller den Beobachter am BroadcastreceReiver
generasacodicetagpre.Wenn Calllog-Änderung die Methode-Getduration ausführt, ist die neue Getduration
generasacodicetagpre.und die Dauer des letzten Anrufs fällt stand, diese Dauer ist der vorherige Anruf. Ich weiß nicht, dass ich es tun kann.
Lösung
Fügen Sie ein ContentobServer auf Anrufprotokoll hinzu, der Sie benachrichtigt, wenn in Calllog d. H. Wenn ein neuer Anruf zu Anrufprotokoll hinzugefügt wird, oder Sie das Rufprotokoll (Anrufprotokoll)
edit
Versuchen Sie es in diesem Code mit diesem Code
mit diesem Code.warten Sie 3-4 Sekunden nach dem Anruf und dann
generasacodicetagpre.