android 树形列表 android 数据列表
转载
Android 常用数据表操作总结
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);
// 查看该联系人有多少个电话号码。如果没有这返回值为0
int phoneCount = cursor
.getInt(cursor
.getColumnIndex(ContactsContract.Contacts. HAS_PHONE_NUMBER ));
if (phoneCount > 0) {
//如果只想查询手机号码的话就只执行下面的代码
//
// Cursor phones = mContext.getContentResolver().query(
// ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
// null,
//
|
本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。