Android SDK中单条短信的目的地号码是存储在sms表中的addresses字段中的.
Draft中的短信也是如此,但是有所例外.
如果你保存一条多地址的群发短信草稿时,Android的Messaging程式会将此条短信草稿保存到sms表中,type=3,但是这条记录的address字段却是空的,非常诡异,也许是Messaging程式不容许address字段中出现“,”号,所以它将这条短信的多条地址分条保存到canonical_addresses表中。
比如这条短信是发送给“11111111111”,“2222222222”,“3333333333”,“44444444444”的一条草稿短信,那么Messaging程式将这条短信的4条地址分别存入canonical_addresses表中,假设形成了_id分别为1,2,3,4的4条canonical_addresses记录,那么这条短信对应的threads表中的recipient_ids字段为1 2 3 4(数字中间用空格隔开)。这样,一条多地址的短信就对应了1条threads记录和多条canonical_addresses记录。
那么已发送的或已接受的短信没有一条记录是以这样的形式存在的,所以在发送这条短信的时候,Messaging程式又对这种类型的短信加入了特殊的处理。
Android群发短信机制解析

Android SDK中的群发短信草稿保存在sms表中,address字段为空,实际地址存储在canonical_addresses表。发送时,短信内容不变,address字段填充,形成多条单独地址的短信,仍显示为同一会话。Android Messaging应用以threads表为中心,实现会话模式的短信管理。Ophone系统对此有不同处理方式。
最低0.47元/天 解锁文章
1406

被折叠的 条评论
为什么被折叠?



