Android随笔

有关通讯录的资料都放在contacts2.db中这个数据库放在/data/data/com.android.providers.contacts/databases/contacts.db

1:通话记录表
表名:calls
表的主要字段说明:

 

 

字段名

字段类型

备注

_id 

INTEGER 

记录标识

number 

TEXT

电话号码

date 

INTEGER

通话时间( 注意是一个整形 )

duration 

INTEGER

电话时长

new 

INTEGER

 

name 

TEXT

联系人

type

INTEGER

电话状态(1 :打进来的电话,2 :打出的电话, 3 :未接电话 )

 

 

 

主要操作的涉及的代码:

查询系统通话记录

 

private  Cursor  queryAllCallsInfo (){
    Uri uri=CallLog.Calls. CONTENT_URI ;
    String sortOrder=CallLog.Calls. DEFAULT_SORT_ORDER ;
    return   context .getContentResolver().query(uri,  null ,  null ,  null ,       sortOrder);
}

 

 

根据电话删除系统通话记录

 

public   int  deleteSysCallInfoSByNum(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
 */
private  Cursor 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
 */
private  Cursor 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);
}
删除系统短信的方法
/**
 * 删除短信记录
 *  @param  threadId 短信的会话记录
 *  @return
 */
public   int  deleteSysMessageByThreadId( long  threadId){
      System. out .println( "---------deleteSysMessageByThreadId-------" );
      Uri mUri=Uri. parse ( "content://sms/conversations/"  + threadId);  
      return   context .getContentResolver().delete(mUri,  null ,  null );  
}

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(android)