短信数据结构摘要
- 短信 sms数据库存放路径
/data/data/com.android.providers.telephony/databases/mmssms.db (需要root权限)
这个数据库有13张表,sms表存了短信的基本信息。
- 短信数据库的ContentUri
public final static String SMS_URI_ALL ="content://sms/";
public final static String SMS_URI_INBOX ="content://sms/inbox";
public final static String SMS_URI_SEND ="content://sms/sent";
public final static String SMS_URI_DRAFT ="content://sms/draft";
public final static String SMS_URI_OUTBOX = "content://sms/outbox";
public final static String SMS_URI_FAILED ="content://sms/failed";
public final static String SMS_URI_QUEUED ="content://sms/queued";
- 3张重要的表
收发短信主要读写下面3张表
- Canonical_addresses表
_id 标示它的唯一性
Address 电话号码
- sms表
_id 标示它的唯一性
thread_id :这个字段很重要,同一个会话中他们的thread_id是一样的,也就是说通过thread_id就可以知道A与B在聊天还是 A与C在聊天
person:发件人,返回一个数字就是联系人列表里的序号,陌生人为null
date :这条消息发送或接收的时间
read: 0 表示未读 1表示已读
protocol:协议 0SMS_PROTO, 1 MMS_PROTO
status:状态 -1接收,0完成,64等待,128失败
type : 1表示接收 2表示发出
body 表示消息的内容
service_center短信服务中心号码编号
- threads表
_id标示它的唯一性
date:表示最后接收或者发送消息的时间
message_count:表示发送消息的数量,这里我接收到了一条消息也回复了一条消息那么它的数量就为2
recipient_ids:联系人ID,指向表canonical_addresses里的id。
snippet :最后收到或者发送的消息内容,就是上图body中存的东西
原文:http://blog.csdn.net/vic_fang/article/details/19911441