android - How to detect when phone is answered or rejected -


i managed prepare activity when phone ringing. need know how cancel activity when anwser phone or reject call.do call extra_state_idle?extra_state_offhook?

any ideas?

<receiver android:name=".incomingbroadcastreceiver">                              <intent-filter>                                                                <action android:name="android.intent.action.phone_state"/>            </intent-filter>     </receiver>     public class incomingbroadcastreceiver extends broadcastreceiver {  @override public void onreceive(context context, intent intent) {     string state = intent.getstringextra(telephonymanager.extra_state);     // if incoming call arrives     if (state.equals(telephonymanager.extra_state_ringing))     { //did work } 

in onreceive:

phonestatechangelistener pscl = new phonestatechangelistener; telephonymanager tm = (telephonymanager)this.getsystemservice(context.telephony_service); tm.listen(pscl, phonestatelistener.listen_call_state); 

separate class:

private class phonestatechangelistener extends phonestatelistener {     public static boolean wasringing;     @override     public void oncallstatechanged(int state, string incomingnumber) {         switch(state){             case telephonymanager.call_state_ringing:                  log.i(log_tag, "ringing");                  wasringing = true;                  break;             case telephonymanager.call_state_offhook:                  log.i(log_tag, "offhook");                   if (!wasringing) {                      // start new activity                  } else {                      // cancel old activity                  }                   // should last piece of code before break                  wasringing = true;                  break;             case telephonymanager.call_state_idle:                  log.i(log_tag, "idle");                  // should last piece of code before break                  wasringing = false;                  break;         }     } } 

all need write code check if previous state 'ringing'. if current state idle , previous state ringing, cancelled call. if current state offhook , previous state ringing, answered call.


Comments

Popular posts from this blog

node.js - Mongoose: Cast to ObjectId failed for value on newly created object after setting the value -

gradle error "Cannot convert the provided notation to a File or URI" -

python - NameError: name 'subprocess' is not defined -