双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

PhoneStateListener监听问题

救世神棍 救世神棍 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
写了个类监听手机状态,代码如下:
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,问题是测试机一直在响铃状态。

很奇怪,似乎监听到的状态都有问题,不知道是否有人碰到过?
...全文

相关推荐

评论 2
收藏 已收藏
分享
返回顶部
救世神棍
Android 80,489 成员 91,375 内容