Get Last Call Duration in android

后端 未结 9 1572
北荒
北荒 2020-12-03 15:20

I am looking for an easiest way to get call duration of last dialed number. So for e.g if I have made a call to my mom once I cut the call a notification with the duration s

9条回答
  •  伪装坚强ぢ
    2020-12-03 16:02

    Get Last call duration and not previous try giving a delay

    private Handler finishedCall = new Handler();    
    finishedCall.postDelayed(new Runnable() {
            @Override
            public void run() {
                String dura = LastCall();
        }, 1000);
    

    And Call the Lastcall function

    public String LastCall() {
                String callDura = "0";
                StringBuffer sb = new StringBuffer();
                Uri contacts = CallLog.Calls.CONTENT_URI;
                if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_CALL_LOG) != PackageManager.PERMISSION_GRANTED) {
                    callDura = null;
                }
                else {
                    Cursor managedCursor = getApplicationContext().getContentResolver().query(
                            contacts, null, null, null, android.provider.CallLog.Calls.DATE + " DESC limit 1;");
                    int number = managedCursor.getColumnIndex(CallLog.Calls.NUMBER);
                    int duration1 = managedCursor.getColumnIndex(CallLog.Calls.DURATION);
                    int date = managedCursor.getColumnIndex(CallLog.Calls.DATE);
                    if (managedCursor.moveToFirst() == true) {
                        String phNumber = managedCursor.getString(number);
                        callDura = managedCursor.getString(duration1);
                        String callDate = managedCursor.getString(date);
                        String callDayTime = new Date(Long.valueOf(callDate)).toString();
                        String dir = null;
                        Log.e("DUR", "\nPhone Number:--- " + phNumber + " \nCall duration in sec :--- " + callDura + " \nCall Date in sec :--- " + callDayTime);
                    }
                    managedCursor.close();
                }
                return callDura;
         }
    

提交回复
热议问题