/**
* 读取数据
*
* @return 读取到的数据
*/
private Uri callUri = CallLog.Calls.CONTENT_URI;
private String[] columns = {CallLog.Calls.CACHED_NAME// 通话记录的联系人
, CallLog.Calls.NUMBER// 通话记录的电话号码
, CallLog.Calls.DATE// 通话记录的日期
, CallLog.Calls.DURATION// 通话时长
, CallLog.Calls.TYPE};// 通话类型}
private List<CallLogInfo> getDataList() {
// 1.获得ContentResolver
ContentResolver contentResolver = getContentResolver();
Cursor cursor = contentResolver.query(callUri, // 查询通话记录的URI
columns
, null, null, CallLog.Calls.DEFAULT_SORT_ORDER// 按照时间逆序排列,最近打的最先显示
);
// 3.通过Cursor获得数据
List<CallLogInfo> list = new ArrayList<>();
while (cursor.moveToNext()) {
String name = cursor.getString(cursor.getColumnIndex(CallLog.Calls.CACHED_NAME));
String number = cursor.getString(cursor.getColumnIndex(CallLog.Calls.NUMBER));
long dateLong = cursor.getLong(cursor.getColumnIndex(CallLog.Calls.DATE));
String date = new SimpleDateFormat("MM/dd HH:mm").format(new Date(dateLong));
int duration = cursor.getInt(cursor.getColumnIndex(CallLog.Calls.DURATION));
int type = cursor.getInt(cursor.getColumnIndex(CallLog.Calls.TYPE));
String dayCurrent = new SimpleDateFormat("dd").format(new Date());
String dayRecord = new SimpleDateFormat("dd").format(new Date(dateLong));
String typeString = "";
switch (type) {
case CallLog.Calls.INCOMING_TYPE:
//"打入"
typeString = "打入";
break;
case CallLog.Calls.OUTGOING_TYPE:
//"打出"
typeString = "打出";
break;
case CallLog.Calls.MISSED_TYPE:
//"未接"
typeString = "未接";
break;
default:
break;
}
}
return list;
}
获取通讯记录
猜你喜欢
转载自blog.csdn.net/qq_25430563/article/details/89098326
今日推荐
周排行