2013-09-01 2 views
-1

Есть ли способ запустить приложение сразу после отклонения вызова?Как запустить приложение сразу после отклонения вызова?

Я попытался найти решения, но не нашел их.

Спасибо заранее ...

+1

использование Broadcast Слушатель, и слушать для входящего вызова. Найдите google для BroadcastListener, что-то вроде этого: «android java перехватить вызов». SO - это место, где можно помочь с уже существующим кодом, а не заниматься исследованиями или предоставить готовый код. –

ответ

0

используют PhoneStateListener, чтобы при завершении вызова. вам, скорее всего, придется активировать действия слушателя, чтобы дождаться начала вызова (дождитесь, пока он снова изменится с PHONE_STATE_OFFHOOK на PHONE_STATE_IDLE), а затем напишите некоторый код, чтобы вернуть ваше приложение в состояние IDLE.

Возможно, вам потребуется запустить прослушиватель в службе, чтобы он оставался включенным, и приложение перезагружается. пример кода:

EndCallListener callListener = new EndCallListener(); 
TelephonyManager mTM = (TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE); 
mTM.listen(callListener, PhoneStateListener.LISTEN_CALL_STATE); 

определение СЛУШАТЕЛЬ:

private class EndCallListener extends PhoneStateListener { 
    @Override 
    public void onCallStateChanged(int state, String incomingNumber) { 
     if(TelephonyManager.CALL_STATE_RINGING == state) { 
      Log.i(LOG_TAG, "RINGING, number: " + incomingNumber); 
     } 
     if(TelephonyManager.CALL_STATE_OFFHOOK == state) { 
      //wait for phone to go offhook (probably set a boolean flag) so you know your app initiated the call. 
      Log.i(LOG_TAG, "OFFHOOK"); 
     } 
     if(TelephonyManager.CALL_STATE_IDLE == state) { 
      //when this state occurs, and your flag is set, restart your app 
      Log.i(LOG_TAG, "IDLE"); 
     } 
    } 
} 
Смежные вопросы