首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >去电次数

去电次数
EN

Stack Overflow用户
提问于 2017-08-03 00:51:27
回答 1查看 409关注 0票数 3

下面是我用来检索呼入、呼出电话号码的代码:

代码语言:javascript
复制
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给了我一个错误,所以我不能得到呼出的号码!除此之外,我还想恢复通话的持续时间。请帮帮我。

EN

回答 1

Stack Overflow用户

发布于 2017-08-03 01:02:38

从这里提到的这个问题,How to detect incoming calls, in an Android device?

Action NEW_OUTGOING_CALL将为您提供呼出电话号码,对于呼入电话,您的代码将正常工作。

代码语言:javascript
复制
if (intent.getAction().equals("android.intent.action.NEW_OUTGOING_CALL")) {
            savedNumber = intent.getExtras().getString("android.intent.extra.PHONE_NUMBER");
        }

除此之外,我还想恢复呼叫的持续时间。请帮帮我

您可以仅从通话记录中获得通话持续时间,或者如果您从onOutgoingCallEnded中的链接中考虑上述答案,您可以减去开始和结束时间,但这再次不会得到确切的时间,因为OFF_HOOK是在进行呼叫时触发的,而不是在呼叫接通或应答时触发的,因此最好在通话记录中记录确切的持续时间。

因此,如果您正在使用链接中的上述代码,并且希望在onOutgoingCallEnded被触发时立即检测持续时间,请等待一秒钟,然后从呼叫日志中读取,然后它将给出最新的条目,否则您将始终从呼叫日志中获取前一个条目。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45466702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档