2013-03-06 65 views
0

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

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

+1

这 - 【答案】(http://stackoverflow.com/a/10032910/2024761) – SudoRahul 2013-03-06 05:51:30

+1

为什么会有人想要一个5分钟后结束通话的应用程序? – Squonk 2013-03-06 05:55:40

+0

@ R.J仅适用于来电,当用户开始通话时,不会收到PHONE_STATE_RINGING。 – 2013-03-06 06:35:46

回答

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"/> 
相关问题