Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android(棒棒糖)无法检测到来自第二个SIM卡的正在进行的电话呼叫_Android_Android 5.0 Lollipop_Telephony_Dual Sim_Android 5.1.1 Lollipop - Fatal编程技术网

Android(棒棒糖)无法检测到来自第二个SIM卡的正在进行的电话呼叫

Android(棒棒糖)无法检测到来自第二个SIM卡的正在进行的电话呼叫,android,android-5.0-lollipop,telephony,dual-sim,android-5.1.1-lollipop,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 telephony

我有一段代码,可以打电话并在一定时间后挂断。 我成功地从两个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 }
Class c=Class.forName(telMgr.getClass().getName());
方法m=c.getDeclaredMethod(“getITelephony”);
m、 setAccessible(true);
ITelephony电话服务=(ITelephony)m.invoke(telMgr);
if(telephonyService.isofhook()){//DO SOMETHING}
如果第一个SIM卡拨打电话,我会得到
isofhook()
true
,但从第二个SIM卡,手机正在通话,但我会得到
false

有没有办法检测我是否在两个模拟人生中都脱钩了?
谢谢你的评论,但我已经找到了解决办法。 我没有使用从
TelephonyManager
中检索
ITelephony
“实例”的旧方法(我在旧版本中使用了这个技巧,这会导致其他方法给我带来麻烦),而是通过调用
getCallState()
直接使用
TelephonyManager
,对于两个模拟人生来说,它似乎信息丰富且准确。 代码示例:

TelephonyManager telMgr = (TelephonyManager)(this.getMainContext()
                        .getSystemService(Context.TELEPHONY_SERVICE));
/* Making a call... */
if (telMgr.getCallState() != TelephonyManager.CALL_STATE_OFFHOOK) { /* Do your stuff */ }
简单明了。使用我当前的5.1棒棒糖版本