我如何获得通话时间?

时间:2019-02-11 09:01:19

标签: android call duration

我正在制作一个android应用程序。我会从一台设备拨打电话,然后在另一台设备上接收,但是谁能告诉我我如何才能在Caller设备何时发起通话时在Receiver Device上获取时间?因为我想计算拨打电话和接听电话的延迟?

2 个答案:

答案 0 :(得分:2)

当您从一个设备调用时,您可以借助api在服务器端存储时间,而当您收到呼叫时,您可以重新集成api以获取第一个设备调用u的时间。

答案 1 :(得分:1)

您应该创建一个BroadcastReceiver:

public class CallReciever extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        if (intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(
                TelephonyManager.EXTRA_STATE_RINGING)) {

                // Phone number 
                String incomingNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);

                // Ringing state
                // This code will execute when the phone has an incoming call
        } else if (intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(
                TelephonyManager.EXTRA_STATE_IDLE)
                || intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(
                        TelephonyManager.EXTRA_STATE_OFFHOOK)) {

            // This code will execute when the call is answered or disconnected
        }

    }
}

您应该注册您的应用程序以侦听清单中的这些意图:

<receiver android:name=".CallReciever" >
            <intent-filter>
                <action android:name="android.intent.action.PHONE_STATE" />
            </intent-filter>
 </receiver>
  

您可以节省开始时间和摘机时间。有所作为   在这之间会有您想要的延迟。