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" />
然后你就可以查看手机通话记录啦!