2015-07-26 19 views
6

Próbuję wykryć, kiedy użytkownik odpowiada na telefon. Moja aplikacja wybiera numer telefonu, ale nie widząc odpowiedzi użytkownika, nie mogę wykonać kluczowej funkcji, której potrzebuję. Wygląda na to, że udało ci się to zrobić w wersji 5 i wyżej, jak widać w tym poście, ale nie wiem, jak to zrobić. Wiem, że ktoś musiał wymyślić jakieś obejście, ponieważ, jak wskazała wcześniej jedna osoba, licznik czasu połączenia rozpoczyna się, gdy użytkownik odpowie, więc musi istnieć sposób na jego wykrycie. To pytanie zostało opublikowane wiele razy, ale nikt nie wysyła PRAWIDŁOWO odpowiedzi.Jak sprawdzić, czy połączenie wychodzące jest odbierane, w systemie Android?

Wydaje się, że odpowiedź leży w Tim S. odpowiedzieć tutaj:

Cannot detect when outgoing call is answered in Android

<uses-permission android:name="android.permission.READ_PRECISE_PHONE_STATE" /> 

<receiver android:name=".listener.OutCallLogger"> 
    <intent-filter> 
     <action android:name="android.intent.action.PRECISE_CALL_STATE" /> 
    </intent-filter> 
</receiver> 
public class OutCallLogger extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     switch (intent.getIntExtra(TelephonyManager.EXTRA_FOREGROUND_CALL_STATE, -2) { 
      case PreciseCallState.PRECISE_CALL_STATE_IDLE: 
       Log.d(This.LOG_TAG, "IDLE"); 
       break; 
      case PreciseCallState.PRECISE_CALL_STATE_DIALING: 
       Log.d(This.LOG_TAG, "DIALING"); 
       break; 
      case PreciseCallState.PRECISE_CALL_STATE_ALERTING: 
       Log.d(This.LOG_TAG, "ALERTING"); 
       break; 
      case PreciseCallState.PRECISE_CALL_STATE_ACTIVE: 
       Log.d(This.LOG_TAG, "ACTIVE"); 
       break; 
     } 
    } 
} 
+0

Jakieś odpowiedzi lub wskazówki na ten temat? –

+0

znalazłeś jakieś rozwiązanie? – Mujtaba

Odpowiedz

0

Nie sądzę, że to możliwe bez rzeczywistego sprawdzenia dzwonek dla zmian. Zamierzam dać wyobrażenie o tym, jak można to zrobić, ponieważ nikt nie udzielił jeszcze żadnych odpowiedzi.

Na obu moich obecnych telefonach (jeden jest katalogiem głównym, jeden nie jest), numer jest wybierany, a następnie zaczyna się "zegar połączenia". Wygląda na to, że sam telefon nie wie nawet, kiedy odebrano połączenie, tylko po jego zakończeniu. Nie wierzę, że istnieje prosty sposób robienia tego.

Jeśli porównasz poszczególne dźwięki dzwonka i porównasz odstępy, aby upewnić się, że połączenie wciąż dzwoni, będziesz wiedzieć, że nie otrzymał odpowiedzi. Gdy wykryjesz szum, którego nie powinno tam być, możesz założyć, że ktoś odpowiedział i powiedział "Cześć" lub coś podobnego (mam nadzieję, że nie w tym samym czasie co dzwonek). Wiesz już, jak wykryć, czy połączenie zostało zakończone. Nie mam pojęcia, jakiego rodzaju interfejsów dźwiękowych API ktoś mógłby zacząć od takiego projektu.

Powiązane problemy