2011-01-04 12 views
4

Ziel: Ermitteln Sie auf der Android-Plattform die Telefonnummer der Person, mit der der Benutzer gerade spricht.Android: Ermitteln der derzeit aktiven Telefonnummer während des Telefonats

Gegenwärtig gibt es mit PhoneListener eine gewisse Mehrdeutigkeit bei gehaltenen Anrufen.

Fall: Benutzer spricht während eines Anrufs mit jemandem ("Anruf 1"). Der Benutzer befindet sich daher im Anrufzustand OFFHOOK. Dann befindet sich der Benutzer im Zustand RINGING, der einen eingehenden Anruf anzeigt ("Anruf 2"). Der Status wechselt dann zu OFFHOOK. Dies könnte auf eine von zwei Möglichkeiten hindeuten - entweder der Benutzer hat Anruf 2 angenommen und Anruf 1 gehalten. Alternativ hat der Benutzer Anruf 2 abgelehnt und zu Anruf 1 zurückgekehrt.

Wie ist es möglich, zwischen den beiden Fällen zu unterscheiden? Ist es möglich, die Telefonnummer des AKTUELLEN ANRUFS auf dem Telefon zu erkennen?

Antwort

2

Verwenden Sie einen PhoneStateLister und onCallStateChanged. Dort können Sie auch die eingehende Nummer sehen.

+1

Es gibt eine Frage der Mehrdeutigkeit - das einzige Mal, dass eine Telefonnummer empfangen wird, ist im Zustand RINGING. Dieser Zustand impliziert nicht, mit wem der Benutzer gerade spricht, nur dass ein Anruf eingeht. Anruf 1 ist die Telefonnummer X. Anruf 2 kommt herein, ich empfange einen RUFZUSTAND von der Telefonnummer Y. Der Zustand kehrt nun zu AUSVERKAUFT zurück. Mit wem spreche ich? Spreche ich mit Anruf 1, Rufnummer X oder Anruf 2, Rufnummer Y? Das ist das Problem, das ich versuche zu lösen. – ChaimKut

+0

aber diese Methode hat immer die rining-Nummer als Parameter, auch wenn der Status OFFHOOK ist. Also denke ich, dass die Telefonnummer im OFFHOOK-Zustand die Telefonnummer ist, mit der Sie gerade sprechen. Aber Sie müssen eine Dokumentation der onCallStateChanged-Methode testen oder finden. –

+0

Ich teste auf einem NexusOne auf 2.1, und OFFHOOK stellt keine Telefonnummer als Parameter zur Verfügung, die Zeichenfolge ist einfach leer (obwohl es ein Feld in der onCallStateChanged-Methode ist). Können Sie dieses Verhalten auf Ihrem Telefon bestätigen oder ablehnen? Hier ist ein kurzer und schmutziger Beispielcode zum Testen: http://www.tutorialforandroid.com/2009/01/get-phone-state-when-someone-is-calling_22.html – ChaimKut

Verwandte Themen