查看电话记录(转载)

查询的联系人名字(CallLog.Calls.CACHED_NAME),
中CallLog.Calls.TYPE就是电话类型,
电话号码(CallLog.Calls.NUMBER)

 1 for (int i = 0; i < cursor.getCount(); i++) {
2 cursor.moveToPosition(i);
3 //注意,如果数据表里面有一个字段:type,查询的时候,若没有设置要查type,那么在cursor里面读type的数据时候就会出现找不到列:type
4 //读取数据可以理解是从cursor里面读的,当初你没查type这个字段,查询结果里面没有type的数据,当然cursor里面也就没有了
5 if(cursor.getString(cursor.getColumnIndexOrThrow(CallLog.Calls.CACHED_NAME))== null){
6 item.add("联系人列表无此记录");
7 }else{
8 item.add(cursor.getString(cursor.getColumnIndexOrThrow(CallLog.Calls.CACHED_NAME)));
9 }
10
11 item_2.add(cursor.getString(cursor.getColumnIndexOrThrow(CallLog.Calls.NUMBER)));
12 }

//===================================================

1 final Cursor cursor = cr.query(CallLog.Calls.CONTENT_URI, new String[]{CallLog.Calls.NUMBER,CallLog.Calls.CACHED_NAME,CallLog.Calls.TYPE}, null, null,CallLog.Calls.DEFAULT_SORT_ORDER);

中CallLog.Calls.TYPE就是电话类型,
public class CallLog 类中:

1 public static final int INCOMING_TYPE = 1;
2 public static final int OUTGOING_TYPE = 2;
3 public static final int MISSED_TYPE = 3;

不难看出来电:1,拨出:2,未接:3
至于记录时间,Calls里面有DATE可查,查出来的结果是毫秒级的时间,需要转换时间格式


//=====================================================
时间格式化 :

1 SimpleDateFormat sfd = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
2 Date date = new Date(Long.parseLong(cursor.getString(cursor.getColumnIndexOrThrow(CallLog.Calls.DATE))));
3 String time = sfd.format(date);//格式化的效果:例如2010-01-08 09:10:11







 

posted @ 2012-03-26 14:44  K.Leigh  阅读(243)  评论(0编辑  收藏  举报