2
我想最近完成Android手機的電話詳細信息,並獲得這些細節後,我想開始我的個人應用程序的新活動,當電話已完成。基本上我想在將這些細節放入Android手機的目錄/數據庫之前獲得電話詳細信息。如何獲取此信息?如何獲取最近完成的電話在android中調用詳細信息?
我想最近完成Android手機的電話詳細信息,並獲得這些細節後,我想開始我的個人應用程序的新活動,當電話已完成。基本上我想在將這些細節放入Android手機的目錄/數據庫之前獲得電話詳細信息。如何獲取此信息?如何獲取最近完成的電話在android中調用詳細信息?
首先,您需要授予從設備讀取通話記錄的權限。
<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);
}
希望將麻你出你的需要。
我剛剛在單個文本視圖中顯示所有通話記錄,但您可以根據需要修改代碼。 :-) –
Rushabh,這段代碼給我打電話的細節,除了最近的call.I的意思是,我想詳細的電話,這是剛剛完成,其數據還沒有被保存到目錄/數據庫yet.I想做通話記錄活動顯示完成後打電話詢問我自己的應用程序的日誌記錄機制的對話框。所以這段代碼沒有給我最近完成的電話細節,你有任何解決方案嗎? –