2010-10-18 16 views
6

Wywołałbym połączenie wychodzące, myślałem, że dostanę, gdy osoba na drugiej stronie odbierze moje połączenie, ale z PhoneStateListener możemy uzyskać stan połączenia, ale PhoneStateListener zmienia stan na CALL_STATE_OFFHOOK natychmiast po rozpoczęciu połączenia wychodzącego a nie wtedy, gdy osoba po drugiej stronie odpowiada, więc nie mogę uzyskać efektywnego czasu połączenia podczas rozmowy. Wszelkie pomysły na wykonanie tej czynnościCzy można odbierać połączenia wychodzące podczas połączenia?

Z góry dziękuję!

+0

byłoby możliwe do wykrycia podczas uruchamiania połączeń, nagrywanie czasu na własną rękę, a następnie w późniejszych czasach obliczyć okres czasu, który upłynął od początku rozmowy? Być może będziesz musiał zrobić sztuczkę, aby być odpornym na zmianę zegara lub coś podobnego, ale teoretycznie coś takiego może być możliwe. (Nie próbowałem tego, dlatego nie zrobiłem tego jako odpowiedź). – Tom

+0

@To jest to możliwe, ale czasami zajmie to trochę czasu, zanim uzyskasz intencję rozpoczęcia/odebrania połączenia. –

+0

@mardvd rozwiązałeś ten problem? chciałby także poznać odpowiedź na temat połączeń przychodzących, a nie tylko połączeń wychodzących. –

Odpowiedz

2

Myślę, że jest to możliwe po prostu przez szpiegowanie dziennika połączeń. Możesz zapytać o rejestr połączeń na końcu połączenia, a pole czasu pokaże Ci, co chcesz wiedzieć.

Oto ładny samouczek. Wystarczy dodać pole CallLog.Calls.DURATION do tablicy.

http://www.dcpagesapps.com/developer-resources/android/25-android-tutorial-call-logs

Mam nadzieję, że to pomaga.

Emmanuel

+2

To prawda, i mogę potwierdzić, że to działa, ale * nie * jest możliwe określenie czasu trwania * podczas * połączenia, jak zapytał OP. –

Powiązane problemy