Android(棒棒糖)无法检测到来自第二个SIM卡的正在进行的电话呼叫
我有一段代码,可以打电话并在一定时间后挂断。 我成功地从两个SIM卡拨打了电话(对第二个SIM卡使用了不同的技巧),然而,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
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棒棒糖版本