如何在Android中获取通话的持续时间?

时间:2013-03-06 05:45:07

标签: android

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

我知道我可以通过使用通话记录得到这个但我有一个问题,我可以根据我实时获取数据,当我的通话结束时,只有通话记录会更新,然后我才会能够得到时间,但是时间数据对我来说毫无用处。

1 个答案:

答案 0 :(得分: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"/>