Android随笔
有关通讯录的资料都放在contacts2.db中这个数据库放在/data/data/com.android.providers.contacts/databases/contacts.db1:通话记录表
表名:calls
表的主要字段说明:
字段名
字段类型
备注
_id
INTEGER
记录标识
number
TEXT
电话号码
date
INTEGER
通话时间( 注意是一个整形 )
duration
INTEGER
电话时长
new
INTEGER
name
TEXT
联系人
type
INTEGER
电话状态(1 :打进来的电话,2 :打出的电话, 3 :未接电话 )
主要操作的涉及的代码:
查询系统通话记录
privateCursorqueryAllCallsInfo (){ Uri uri=CallLog.Calls. CONTENT_URI ; String sortOrder=CallLog.Calls. DEFAULT_SORT_ORDER ; return context .getContentResolver().query(uri,null ,null ,null , sortOrder);}
根据电话删除系统通话记录
public intdeleteSysCallInfoSByNum(String number){ Uri uri=CallLog.Calls. CONTENT_URI ; String where=CallLog.Calls. NUMBER + "='" +number+ "'" ; Return context .getContentResolver().delete(uri, where,null );}
2:短信记录表
表名:sms
主要字段说明:
字段名
字段类型
备注
_id
INTEGER
记录标识
thread_id
INTEGER
对话的序号(conversation )
address
TEXT
发件人地址,手机号
person
INTEGER
发件人,返回一个数字就是联系人列表里的序号,陌生人为null (但是我查看系统存在联系人一下表该字段为 null )
date
INTEGER
发送短信的时间
read
INTEGER
是否阅读
status
INTEGER
状态(估计与网关的状态)
type
INTEGER
类型 1 是接收到的, 2 是发出的
body
TEXT
消息体内容
service_center
TEXT
短信中心号码
主要操作涉及的代码
查询系统短信记录
/** * 查询系统所有收件箱短信记录 *@return */privateCursor queryAllInboxSmsInfo(){ System. out .println( "---query in box message----" ); Uri uri=Uri. parse ( "content://content://sms/inbox" ); //收件箱 String sortOrder= "date desc" ; return context .getContentResolver().query(uri,null ,null ,null , sortOrder);}/** * 查询所有发件箱短信的内容 *@return */privateCursor queryAllSentSmsInfo(){ System. out .println( "---query send box message----" ); Uri uri=Uri. parse ( "content://sms/sent" ); //发件箱 String sortOrder= "date desc" ; return context .getContentResolver().query(uri,null ,null ,null , sortOrder);}删除系统短信的方法/** * 删除短信记录 *@paramthreadId 短信的会话记录 *@return */public intdeleteSysMessageByThreadId( longthreadId){ System. out .println( "---------deleteSysMessageByThreadId-------" ); Uri mUri=Uri. parse ( "content://sms/conversations/"+ threadId); return context .getContentResolver().delete(mUri,null ,null );}
页:
[1]