安卓(棒棒糖版)无法检测第二张SIM卡上的通话状态

3

我有一段代码,可以进行电话呼叫并在一定时间后挂断电话。我已经成功地使用不同的技巧从两个SIM卡中拨打电话(针对第二个SIM卡),但是Android似乎无法检测到第二个SIM卡是否被摘机;

请看这段代码:

Class<?> c = Class.forName(telMgr.getClass().getName());
Method m = c.getDeclaredMethod("getITelephony");
m.setAccessible(true);
ITelephony telephonyService = (ITelephony)m.invoke(telMgr);
if (telephonyService.isOffhook()) { // DO SOMETHING }

如果第一个SIM卡发起呼叫,我会获得isOffHook()true,但从第二个SIM卡开始,电话正在进行中,但我得到的是false。有没有办法检测两张SIM卡都处于摘机状态?谢谢。
1个回答

1
感谢评论,但我已经找到了解决方案。与其使用从TelephonyManager检索ITelephony“实例”的旧方法(在旧版本中我使用了这个技巧,因为其他方法给我带来了麻烦),我直接调用TelephonyManager来调用getCallState(),它似乎对两个SIM卡都很有信息量和准确性。 代码示例:
TelephonyManager telMgr = (TelephonyManager)(this.getMainContext()
                        .getSystemService(Context.TELEPHONY_SERVICE));
/* Making a call... */
if (telMgr.getCallState() != TelephonyManager.CALL_STATE_OFFHOOK) { /* Do your stuff */ }

简单明了。与我当前的5.1棒棒糖版本兼容。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接