【问题标题】:Android (Lollipop) cannot detect ongoing phone call from second SIMAndroid(棒棒糖)无法检测到来自第二张 SIM 卡的正在进行的电话呼叫
【发布时间】:2015-06-23 14:38:25
【问题描述】:

我有一段代码可以拨打电话并在一定时间后挂断。 我已经设法从两个 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 卡上都摘机? 谢谢

【问题讨论】:

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


    【解决方案1】:

    感谢 cmets,但我找到了解决方案。 我没有使用从TelephonyManager 检索ITelephony“实例”的旧方法(我在旧版本中使用了这个技巧,因为其他方式给我带来了麻烦),我通过调用getCallState() 直接使用TelephonyManager,并且对于两个 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 版本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-21
      • 1970-01-01
      • 2015-08-12
      • 2015-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多