呼出电话数量

3

这是我用来获取呼入、呼出电话号码的代码:

if(arg1.getAction().equals("android.intent.action.PHONE_STATE")){

                String state = arg1.getStringExtra(TelephonyManager.EXTRA_STATE);

                if(state.equals(TelephonyManager.EXTRA_STATE_OFFHOOK)){
                    Log.d(TAG, "Inside Extra state off hook");
                    String number = arg1.getStringExtra(TelephonyManager.EXTRA_PHONE_NUMBER);
                    Log.e(TAG, "outgoing number : " + number);              
                }       

                else if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)){   
                    Log.e(TAG, "Inside EXTRA_STATE_RINGING");
                    String number = arg1.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);
                    Log.e(TAG, "incoming number : " + number);
                }
                else if(state.equals(TelephonyManager.EXTRA_STATE_IDLE)){
                    Log.d(TAG, "Inside EXTRA_STATE_IDLE");
                }   
            }

但是TelephonyManager.EXTRA_PHONE_NUMBER给我一个错误,所以我无法获取呼出电话的号码!除此之外,我还想恢复通话的持续时间。请帮帮我。


如果您与我们分享您遇到的错误,可能会有所帮助。 - Patrick Gallagher
.EXTRA_PHONE_NUMBER 无法解析或不是字段。 - prince47
EXTRA_PHONE_NUMBER 确实不是 TelephonyManager 的一个字段。你在尝试做什么? - Patrick Gallagher
1个回答

1

根据这里提到的问题, 如何在Android设备中检测来电?

动作NEW_OUTGOING_CALL将提供外拨电话号码,对于呼入电话,您的代码将正常工作。

if (intent.getAction().equals("android.intent.action.NEW_OUTGOING_CALL")) {
            savedNumber = intent.getExtras().getString("android.intent.extra.PHONE_NUMBER");
        }

除此之外,我还希望能够获取通话的持续时间。请帮忙。
您只能从通话记录中获取通话持续时间,或者如果您考虑上面链接中的答案中的onOutgoingCallEnded,则可以减去开始和结束时间,但这仍然不能获得精确的时间,因为OFF_HOOK在呼叫时触发,而不是在呼叫连接或接听时触发,因此最好坚持使用通话记录以获得精确的持续时间。
因此,如果您正在使用来自链接的上述代码,并且想要在onOutgoingCallEnded触发后立即检测持续时间,请等待一秒钟,然后从通话记录中读取,它将提供最新的条目,否则您将始终从通话记录中获取前一个条目。

我不知道如何处理通话记录!请帮帮我,我还是个初学者! - prince47
1
@prince47 这里有一些相关的链接:链接1链接2 - oldcode
好的。我先测试一下传入的呼叫,然后看到链接,谢谢你。 - prince47
您必须按照上面链接中所示的方式注册意图过滤器。 - oldcode
这种方法在 BroadcastReceiver 中运行良好,但当我将其放入我的 Service 类中时,它不再起作用。 - prince47
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接