当前位置:编程学习 > wap >>

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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,