Call duration tracking

Can I use a user's phone through my mobile network operator and track the duration of a phone call?

Thus, the user presses a button in the Call Now application. The call starts from a predefined number. We record the start time. When the call ends, we calculate how many minutes were used.

Possible?

+7
source share
2 answers

To calculate the talk time for incoming and outgoing calls, use the following broadcast receiver:

public class CallDurationReceiver extends BroadcastReceiver { static boolean flag = false; static long start_time, end_time; @Override public void onReceive(Context arg0, Intent intent) { String action = intent.getAction(); if (action.equalsIgnoreCase("android.intent.action.PHONE_STATE")) { if (intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals( TelephonyManager.EXTRA_STATE_RINGING)) { start_time = System.currentTimeMillis(); } if (intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals( TelephonyManager.EXTRA_STATE_IDLE)) { end_time = System.currentTimeMillis(); //Total time talked = long total_time = end_time - start_time; //Store total_time somewhere or pass it to an Activity using intent } } } 

Register your receiver in the manifest file as follows:

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

Also add permission to use:

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

It may be too late, but only for those who may be needed in the future. For outgoing calls, you can read the duration from CallLog. For incoming calls, you can calculate the duration depending on the start and end time of the call.

0
source

All Articles