Android群发短信草稿保存与发送机制
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程式又对这种类型的短信加入了特殊的处理。
发送该短信的时候,首先threads和canonical_addresses表中的内容不变,删除sms中这条草稿短信的记录,并将这条短信分为内容相同但地址单一且各不相同的4条短信,这时,每条短信上的address字段有了数据,并且为上面4个地址中的某一个,而Messaging程式的UI显示上4条短信也还是在一个会话中的相同内容短信的重复4次的显示。
所以,从这里可以看出,Android机自带的Messaging程式是主要以threads表为中心进行动作的,也就是以会话模式作为短信聊天的运作方式,而不是传统的发件箱收件箱之类的方式(中国移动联合Borqs开发的Ophone操作系统内兼备了2种短信管理方式,当然,Ophone发送此类短信的方式也是有别于纯Android的,就不在此描述了)。
Android群发短信草稿保存与发送机制相关推荐
- android群发短信时判断短信是否发送成功
先注册一个broadcast: private BroadcastReceiver smsBroadcastReceiver = new BroadcastReceiver() { public vo ...
- Android 群发短信的实现
版权声明:本文为博主原创文章,未经博主允许不得转载. SmsManager是Android提供的一个服务,SmsManager提供了一系列sendXxxMessage()方法用于发送短信,不过短信通常 ...
- android群发短信到通讯录所有联系人上并动态替换其中联系人信息
当我们要群发短信,而且需要替换里面的一些信息的时候(比如发送祝福短信,需要在短信里面加入对方姓名时), 做一个简单的群发短信的功能,并用通讯录里面的联系人姓名替换短信里面的#name#字符串,然后发送 ...
- android 发短信意图,安卓实现发送短信小程序代码示例
这篇文章主要介绍了Android开发中实现发送短信的小程序示例,文中还附带了一个监听广播接收者的升级版短信发送例子,需要的朋友可以参考下 上图为代码结构图. 现在我们看下具体的代码. Send.jav ...
- android 群发短信
public void sendSms(){ String mobile = getPhoneNums(); if (TextUtils.isEmpty(mobile)) { Toaster.show ...
- Android 群发短信试列
首先的给权限:<uses-permission android:name="android.permission.SEND_SMS"/> java 中: package ...
- android发送短信的两种方式,发送长短信的两种方式,群发短信
android 发送短信的方法 方法一:调用系统的短信APP,发送短信. Intent smsIntent = new Intent(Intent.ACTION_VIEW);smsIntent.set ...
- Android Mms短信的发送流程,短信发送源码解析
发送前的校验 从短信的点击按钮开始着手: // packages/apps/Mms/src/com/android/mms/ui/ComposeMessageActivity.java@Overrid ...
- Android内容提供者(群发短信)
工程目录: Manifests添加读取联系人权限 <uses-permission android:name="android.permission.READ_CONTACTS&quo ...
最新文章
- 打开 hyper-v 批处理_如何控制批处理服务器
- POJ 1014 Dividing(多重背包 + 倍增优化)
- iOS 4的无线部署(Xcode3.2 及 Xcode4.2 图文解说)
- 微软鲍尔默:IE9浏览器将会在3月发布
- 日志查看技巧_10种Git技巧,让你省时省力又省心!
- Java伪代码之大道至简读后感
- java 之 单例模式(大话设计模式)
- [转载]上善若水,厚德载物
- 一次weblogic 在aix hacmp上调试过程
- 网络是怎样连接的学习笔记1----探索浏览器内部(十分适合理清思路)
- OpenWRT软件安装教程,安装的几种方法
- java爬取前程无忧(51job)
- 【内网学习笔记】25、Exchange 邮件服务器
- 温柔末世,慢慢到来的末日
- javaweb笔记(方立勋)
- modbus rtu 调试软件_一文最全解读Modbus 的RTU、ASCII、TCP
- (三)兴趣对于工作的重要性
- 视频多少帧时才不卡顿
- ImageLoader 修改个人头像
- 迅雷下载iso镜像失败(文件重命名失败)
热门文章
- android 关闭软键盘,点击软键盘之外关闭软键盘,editText关闭键盘
- netstat监控大量ESTABLISHED连接数和TIME_WAIT连接数问题分析及解决
- QQ伤感日志_回忆那么长,悲伤那么多
- 2019中国人工智能分类榜
- 我的世界服务器物品复制,我的世界服务器复制物品bug2018 | 手游网游页游攻略大全...
- 代码的简单设计五原则
- 支付宝小程序选择手机本地视频
- Go 语言-二维数组 -- 十安辰
- 心玮医疗赴港递交IPO:盈利预期未知,复星医药等退出股东行列
- 嵌入式的几种固件烧录方式