android 常用的数据库表以及操作说明

原文链接: http://blog.dreamtobe.cn/1117.html

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 );}

3:联系人表

表名:contacts

主要字段的说明:

字段名 字段类型 备注
_id INTEGER 记录标识,通过该字段找到响应其他表里面联系人详细信息
display_name TEXT 联系人姓名
has_phone_number INTEGER 是否有电话号码,没有为0,有几个就返回几个

具体创建的SQL数据

CREATE TABLE contacts(_id INTEGER PRIMARY KEY AUTOINCREMENT,display_name TEXT,photo_id INTEGER REFERENCES data(_id),custom_ringtone TEXT,send_to_voicemail INTEGER NOT NULL DEFAULT 0,times_contacted INTEGER NOT NULL DEFAULT 0,last_time_contacted INTEGER,starred INTEGER NOT NULL DEFAULT 0,in_visible_group INTEGER NOT NULL DEFAULT 1,has_phone_number INTEGER NOT NULL DEFAULT 0,lookup TEXT,status_update_id INTEGER REFERENCES data(_id),single_is_restricted INTEGER NOT NULL DEFAULT 0)

主要涉及的操作代码:

查询所有的联系信息
public   void  getContact() {Uri uri = ContactsContract.Contacts. CONTENT_URI ;Cursor cursor = getContentResolver().query(uri,  null ,  null ,  null ,  null );if  (cursor.moveToFirst()) {int  idColumnIndex = cursor.getColumnIndex(ContactsContract.Contacts. _ID );System. out .println( "-------idColumnIndex----------:"+ idColumnIndex);int  displayNameColumnIndex = cursor.getColumnIndex(ContactsContract.Contacts. DISPLAY_NAME );System. out .println( "--------------displayNameColumnIndex------"+ displayNameColumnIndex);do  {// 获取联系人的ID号String contactId = cursor.getString(idColumnIndex);System. out .println( "---------contactId-------"  + contactId);// 获取联系人姓名String displayName = cursor.getString(displayNameColumnIndex);System. out .println( "--------------displayName-----"+ displayName);// 查看该联系人有多少个电话号码。如果没有这返回值为0int  phoneCount = cursor.getInt(cursor.getColumnIndex(ContactsContract.Contacts. HAS_PHONE_NUMBER ));if  (phoneCount > 0) {//如果只想查询手机号码的话就只执行下面的代码//// Cursor phones = mContext.getContentResolver().query(//  ContactsContract.CommonDataKinds.Phone.CONTENT_URI,//  null,// font-size: 10.5pt; font-family:

更多相关文章

  1. Androidの联系人群组Group操作示例
  2. androidのMMS短信发送过程(一)
  3. h5页面点击按钮,触发手机自带的发短信
  4. android小功能实现之发送短信
  5. androidのMMS短信发送过程(二)
  6. Android——通过电话号码获得联系人图像、姓名
  7. android 增加联系人

随机推荐

  1. Android颜色对照表 (左边是颜色示例,右边是
  2. android nine-patch
  3. Android动画研究
  4. Android(安卓)JNI实例代码(一)
  5. android java获得root权限调用linux命令
  6. andrid五大布局
  7. Android中级篇之区分系统程序和安装程序
  8. Android中几种关闭Activity或app的方法
  9. UE4打包Android OpenGLES3格式项目
  10. Android build编译过程及Android.mk与And