2013-07-08 24 views

回答

5

首先,您需要授予從設備讀取通話記錄的權限。

<uses-permission android:name="android.permission.READ_CONTACTS" />

現在使用這種方法來獲得最近的通話記錄getCallDetails()

private void getCallDetails() { 

    StringBuffer sb = new StringBuffer(); 
    Cursor managedCursor = managedQuery(CallLog.Calls.CONTENT_URI,null, null,null, null); 
    int number = managedCursor.getColumnIndex(CallLog.Calls.NUMBER); 
    int type = managedCursor.getColumnIndex(CallLog.Calls.TYPE); 
    int date = managedCursor.getColumnIndex(CallLog.Calls.DATE); 
    int duration = managedCursor.getColumnIndex(CallLog.Calls.DURATION); 
    sb.append("Call Details :"); 

    while (managedCursor.moveToNext()) { 
     String phNumber = managedCursor.getString(number); 
     String callType = managedCursor.getString(type); 
     String callDate = managedCursor.getString(date); 
     Date callDayTime = new Date(Long.valueOf(callDate)); 
     String callDuration = managedCursor.getString(duration); 
     String dir = null; 
     int dircode = Integer.parseInt(callType); 

     switch(dircode) { 
      case CallLog.Calls.OUTGOING_TYPE: 
       dir = "OUTGOING"; 
      break; 

      case CallLog.Calls.INCOMING_TYPE: 
       dir = "INCOMING"; 
      break; 

      case CallLog.Calls.MISSED_TYPE: 
       dir = "MISSED"; 
      break; 
     } 

     sb.append("\nPhone Number:--- "+phNumber +" \nCall Type:--- "+dir+" \nCall Date:--- "+callDayTime+" \nCall duration in sec :--- "+callDuration); 
     sb.append("\n----------------------------------"); 
    } 
    managedCursor.close(); 
    call.setText(sb); 
} 

希望將麻你出你的需要。

+0

我剛剛在單個文本視圖中顯示所有通話記錄,但您可以根據需要修改代碼。 :-) –

+1

Rushabh,這段代碼給我打電話的細節,除了最近的call.I的意思是,我想詳細的電話,這是剛剛完成,其數據還沒有被保存到目錄/數據庫yet.I想做通話記錄活動顯示完成後打電話詢問我自己的應用程序的日誌記錄機制的對話框。所以這段代碼沒有給我最近完成的電話細節,你有任何解決方案嗎? –

相關問題