[android篇]短信数据结构摘要

本文解析了Android系统的短信数据库结构,介绍了sms数据库的存放路径、关键表结构及ContentUri等内容,重点阐述了sms表、Canonical_addresses表及threads表的功能与字段含义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 短信 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就可以知道AB在聊天还是 AC在聊天

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中存的东西

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值