you have to use the phonestatelistener:
phonestatelistener
telephonymanager tm = (telephonymanager)getsystemservice(telephony_service); tm.listen(mphonelistener, phonestatelistener.listen_call_state); // somewhere else private phonestatelistener mphonelistener = new phonestatelistener() { public void oncallstatechanged(int state, string incomingnumber) { try { switch (state) { case telephonymanager.call_state_ringing: // do something... break; case telephonymanager.call_state_offhook: // do something... break; case telephonymanager.call_state_idle: // do something... break; default: log.d(tag, "unknown phone state=" + state); } } catch (remoteexception e) {} } };
make sure to include this permission in your manifest:
<uses-permission android:name="android.permission.read_phone_state"/>
you have to use the
phonestatelistener
:make sure to include this permission in your manifest: