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