TelephonyManager tm = (TelephonyManager) this.getSystemService(TELEPHONY_SERVICE);
PhoneStateListener pl=new PhoneStateListener(){
@Override
public void onCallStateChanged(int state, String incomingNumber) {
// TODO Auto-generated method stub
super.onCallStateChanged(state, incomingNumber);
if(state==TelephonyManager.CALL_STATE_IDLE) //CALL_STATE_OFFHOOK )
{
startKld();
}
}
};
tm.listen(pl, PhoneStateListener.LISTEN_CALL_STATE );
其中的TelephonyManager.CALL_STATE_IDLE说明没有拨打电话的界面的时候,也就是在拨打电话前和挂电话后的情况;
TelephonyManager.CALL_STATE_OFFHOOK ,SDK是这样解释的,至少有一个电话存在、拨出或激活、接听,而没有一个电话在通话或等待的状态;
CALL_STATE_RINGING是在通话的过程中。
监听到做什么事情就是在onCallStateChanged(int state, String incomingNumber) 里实现的
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xuxinyl/archive/2010/11/24/6032908.aspx