?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
/*
* 读取手机通话记录 type 1呼入 2呼出 3未接
*/
public static ArrayList<Map<String, Object>> getPhoneRecord(Context context) {
 
ArrayList<Map<String, Object>> record_list = new ArrayList<Map<String, Object>>();
Map<String, Object> map = null;
String number = null;
long time_mills;
String currentTime;
String callTime;
String numberOrName = null;// 电话或者姓名
String callDate = null;// 打电话日期
int type;// 类型
Date date;
// 查询通话记录
ContentResolver cr = context.getContentResolver();
final Cursor cursor = cr.query(CallLog.Calls.CONTENT_URI, new String[] {
CallLog.Calls.NUMBER, CallLog.Calls.CACHED_NAME,
CallLog.Calls.TYPE, CallLog.Calls.DATE }, null, null,
CallLog.Calls.DEFAULT_SORT_ORDER);
// 获取系统当前时间
SimpleDateFormat sFormat = new SimpleDateFormat("yyyy-MM-dd");
currentTime = sFormat.format(new Date(System.currentTimeMillis()));
//遍历获取通话记录 并用List容器存放
for (int i = 0; i < cursor.getCount(); i++) {
cursor.moveToPosition(i);
number = cursor.getString(0);// 电话号码
numberOrName = cursor.getString(1);// 名字
type = cursor.getInt(2);// 类型
time_mills = Long.parseLong(cursor.getString(3));// 打电话的时间
SimpleDateFormat sfd = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
date = new Date(time_mills);// 打电话的日期
callDate = sfd.format(date);
callTime = sFormat.format(time_mills);
map = new HashMap<String, Object>();
map.put("phone_number", number);
 
//末接
if (type == 3) {
map.put("call_img", R.drawable.missed);
if (currentTime.trim().equals(callTime.trim())) {
map.put("type", context.getResources().getString(R.string.today)
+ "(" + context.getResources().getString(R.string.missed)
+ ")");
} else {
map.put("type", context.getResources().getString(R.string.before)
+ "(" + context.getResources().getString(R.string.missed)
+ ")");
}
}
//拨出
else if (type == 2) {
map.put("call_img", R.drawable.outgoing);
if (currentTime.trim().equals(callTime.trim())) {
map.put("type", context.getResources().getString(R.string.today)
+ "(" + context.getResources().getString(R.string.outgoing)
+ ")");
} else {
map.put("type", context.getResources().getString(R.string.before)
+ "(" + context.getResources().getString(R.string.outgoing)
+ ")");
 
}
//来电
} else {
map.put("call_img", R.drawable.incoming);
if (currentTime.trim().equals(callTime.trim())) {
map.put("type", context.getResources().getString(R.string.today)
+ "(" + context.getResources().getString(R.string.incoming)
+ ")");
} else {
map.put("type", context.getResources().getString(R.string.before)
+ "(" + context.getResources().getString(R.string.incoming)
+ ")");
}
}
if (numberOrName == null) {
numberOrName = number;
}
map.put("numberOrName", numberOrName);
map.put("callDate", callDate);
 
record_list.add(map);
}
cursor.close();
return record_list;
 
}
更多知识点的学习,可以到迹涯网   http://www.jiyanet.com