PhoneStateListener监听问题

救世神棍 2013-06-06 04:10:35
写了个类监听手机状态,代码如下:
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,问题是测试机一直在响铃状态。

很奇怪,似乎监听到的状态都有问题,不知道是否有人碰到过?
...全文
416 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
lpwy5800 2015-05-19
  • 打赏
  • 举报
回复
有人解决了吗?我也碰到了 在4.4上ok ,在5.1上有问题
救世神棍 2013-06-08
  • 打赏
  • 举报
回复
没人弄过这个吗?

80,362

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧