Android(Lollipop)无法检测到来自第二张SIM卡的正在进行的通话

时间:2015-06-23 14:38:26

标签: android android-5.0-lollipop telephony dual-sim android-5.1.1-lollipop

我有一段代码可以拨打电话并在一段时间后挂断电话。 我已经设法从两个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 个答案:

答案 0 :(得分:1)

感谢您的评论,但我找到了解决方案。 而不是使用从ITelephony检索TelephonyManager“实例”的旧方法(我在旧版本中使用此技巧导致其他方式让我烦恼),我直接使用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 Lollipop版本。