【问题标题】:How to get the duration of a call in Android?如何在Android中获取通话时长?
【发布时间】:2013-03-06 18:25:24
【问题描述】:

我想知道如何在 Android 中获取通话时长,我想在用户开始通话时启动计时器,然后在某个特定时间后说 5 分钟后我想结束通话,所以我想知道那我怎样才能得到通话时长?

我知道我可以通过使用通话记录来获取此信息,但我有一个问题,我是否可以根据我的通话实时获取数据何时结束通话,然后只更新通话记录,然后只有我会能弄到时间,但时间数据对我来说没用。

【问题讨论】:

  • 这里是 - Answer
  • 为什么会有人想要一个 5 分钟后结束通话的应用程序?
  • @R.J 只对来电有效,当用户开始通话时,不会收到 PHONE_STATE_RINGING。

标签: android


【解决方案1】:

关于您的活动或服务

@Override
public void onCreate()
{
    TelephonyManager telManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
    telManager.listen(new MyPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
}

class MyPhoneStateListener extends PhoneStateListener
{
    @Override
    public void onCallStateChanged(int state, String incomingNumber)
    {
        switch (state)
        {
            //When receiving an incoming call
            case TelephonyManager.CALL_STATE_RINGING:
            // Do whaterver you want
            break;

             // When user initiates a call or rigth after CALL_STATE_RINGING
            case TelephonyManager.CALL_STATE_OFFHOOK:
             // set a timer here
             break;

             // When call ended
             case TelephonyManager.CALL_STATE_IDLE:
        }
    }
}

在您的清单文件中添加

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多