android - 呼出号码

标签 android

这是我用来检索来电和去电号码的代码:

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 给我一个错误,所以我无法获取拨出电话的号码!除此之外,我还想恢复通话时长。请帮助我。

最佳答案

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

操作 NEW_OUTGOING_CALL 将为您提供去电号码,对于来电,您的代码将正常工作。

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

In addition to that I would also like to recover the duration of the call. please help me

您只能从通话记录中获取通话时长,或者如果您从 onOutgoingCallEnded 中的链接考虑上述答案,您可以减去开始时间和结束时间,但同样不会为您提供准确的时间,因为 OFF_HOOK 是在调用电话时触发的,而不是在接通或接听电话时触发的,因此最好坚持准确持续时间的通话记录。

因此,如果您正在使用链接中的上述代码,并且希望在 onOutgoingCallEnded 被触发后立即检测持续时间,请稍等片刻,然后从通话记录中读取,它将提供最新的entry 否则您将始终从通话记录中获取上一个条目。

关于android - 呼出号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45466702/

相关文章:

java - Android UnixTime 解析不正确

Android 安全 - 使用 pin 存储敏感信息的密码学

android - 重命名包后 onSearchRequested() 不工作

android - 错误:<内存>在具有JNI的Android上没有此类文件或目录

android - ACTION_POWER_CONNECTED 的问题

Android:链接 TextView

android - Proguard 不混淆类名,只混淆方法

android - ImageView 与 ImageButton 与按钮

android - 为什么SDK源码中的WebView会扩展MockView?

android - adb 在 Windows 上未被识别为内部或外部命令