PhoneStateListener监听问题
写了个类监听手机状态,代码如下:public class PhoneState extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
TelephonyManager telephony = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
telephony.listen(customPhoneListener, PhoneStateListener.LISTEN_CALL_STATE);
//Log.i("xxx", "CallReceiver Start... + telephony.getCallState() is " + telephony.getCallState());
}
private PhoneStateListener customPhoneListener = new PhoneStateListener() {
@Override
public void onCallStateChanged(int state, String incomingNumber) {
// TODO Auto-generated method stub
super.onCallStateChanged(state, incomingNumber);
Log.d("xxx", "hello state is " + state);
}
};
}
打印log,发现这么一个问题:
用别的手机给测试机打电话:
D/xxx ( 692): hello state is 1
D/xxx ( 692): hello state is 0
呼叫方主动挂断:
D/xxx ( 692): hello state is 0
D/xxx ( 692): hello state is 0
D/xxx ( 692): hello state is 0
很奇怪,响铃过程中,state先是正常的等于CALL_STATE_RINGING,然后就变成CALL_STATE_IDLE,接下来挂断后也是正常的等于CALL_STATE_IDLE。
测试了三个项目:6575GB和6515GB以及6575ICS上都是如此。
然后另外在一个6517ICS上测的情况是这样子的:
用别的手机给测试机打电话:
D/xxx (16353): hello state is 1
D/xxx (16353): hello state is 1
D/xxx (16353): hello state is 0
D/xxx (16353): hello state is 1
响铃过程中会出现一次CALL_STATE_IDLE,然后恢复CALL_STATE_RINGING,问题是测试机一直在响铃状态。
很奇怪,似乎监听到的状态都有问题,不知道是否有人碰到过?
手机 PhoneStateListener CALL_STATE_IDLE CALL_STATE_RINGING --------------------编程问答-------------------- 没人弄过这个吗?
补充:移动开发 , Android