Android手機想要獲取通話記錄,可以使用CallLog。
java文件關鍵部分內容:
private ContentResolver cr;
private Cursor cursor;
private String LOG = "MobileCalls";
String str = "通話記錄:\n";
public void setContenResolver() {
int i = 0;
setCr(context.getContentResolver());
setCursor(getCr().query(CallLog.Calls.CONTENT_URI, // 使用系統URI,取得通話記錄
new String[] { CallLog.Calls.NUMBER, // 電話號碼
CallLog.Calls.CACHED_NAME, // 聯繫人
CallLog.Calls.TYPE, // 通話類型
CallLog.Calls.DATE, // 通話時間
CallLog.Calls.DURATION // 通話時長
}, null, null, CallLog.Calls.DEFAULT_SORT_ORDER));
// 遍歷每條通話記錄
for (cursor.moveToFirst(); !cursor.isAfterLast() && i < 100; cursor
.moveToNext()) {
String strNumber = cursor.getString(0); // 呼叫號碼
String strName = cursor.getString(1); // 聯繫人姓名
int type = cursor.getInt(2);
String str_type = "";
if (type == CallLog.Calls.INCOMING_TYPE) {
str_type = "呼入";
} else if (type == CallLog.Calls.OUTGOING_TYPE) {
str_type = "呼出";
} else if (type == CallLog.Calls.MISSED_TYPE) {
str_type = "未接";
}
long duration = cursor.getLong(4);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date(Long.parseLong(cursor.getString(3)));
String time = sdf.format(date);
Log.i(LOG, "\n類型:" + str_type + "\n稱呼:" + strName + "\n號碼:"
+ strNumber + "\n通話時長:" + duration + "秒" + "\n時間:" + time
+ "\n---------------------\n");
i++;
}
}
當然,需要在MainFest.xml中申請以下權限:<uses-permission android:name="android.permission.READ_CALL_LOG" /> <!-- 獲取通話記錄所需的權限 -->
然後你就可以查看手機通話記錄啦!