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.

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top