Android 短信发送失败是如何监听到的
之前做项目,遇到需求:在短信发送失败后,弹出对话框,提示失败,如果用户点击retry,则开始重新发送,否则什么都不干。
高通8.0短信发送失败处理:
平台发送短信后会监听短信是否发送成功,这里主要看失败的情况
如果失败有两个处理,两个处理分隔开(即没有直接关系)
1.发送短信失败的通知
2.更改UI,将短信sending状态改为failed状态,允许resend
也就是说,短信失败的话有两个地方可以知道,1是通知栏会有提示,2是短信item项状态会变成失败状态,此时点击item会重新发送
注意目前只是作简单的记录,由于当时任务时间紧迫,没有仔细研究
通知的实现
点击发送后流程如下:
handler发送消息
SmsSingleRecipientSender.sendMessage
SmsSingleRecipientSender intent.addAction MESSAGE_SENT_ACTION
sentIntents.add(PendingIntent.getBroadcast(mContext, requestCode, intent, 0));
handler处理消息
SmsReceiverService.handleMessage(case Action MESSAGE_SENT_ACTION)
SmsReceiverService.handleSmsSent
SmsReceiverService.messageFailedToSend
MessagingNotification.notifySendFailed
MessagingNotification.notificationMgr.notify(MESSAGE_FAILED_NOTIFICATION_ID, notification);
这里应该需要关注PendingIntent,应该就是这个PendingIntent来实时发现短信的发送失败的。
当时的需求可以在弹出通知同时显示短信发送失败的对话框。
界面UI更改的实现
应该是:监听数据库变化,更改界面
MessageListAdapter:CursorAdapter.changeCursor
MessageListAdapter:BaseAdapter.notifyDataSetChanged
MessageListAdapter:CursorAdapter.bindView
MessageListItem:bind
MessageListItem:drawRightStatusIndicator
此处应该关心的应该是ListAdapter如何监听数据库变化。
retry实现
MessageListItem.onMessageListItemClick
MessageListItem.sendMessage(mMessageItem, MSG_LIST_RESEND);
retry就是点击按钮时查看短信的状态,如果是失败的,就用handler发送消息,实现重新发送
总结
所以短信发送失败的状态如何被监听到呢,有2条路
1,使用listAdapter监听数据库变化
2,使用pendingIntent监听发送状态
Android 短信发送失败是如何监听到的相关推荐
- Android SMSC设置失败短信发送失败问题
1:获得PDU码,, 比如 短信中心号码是 +8613800760500 先2位分组,后面不够的加一个f 那么就是 86 13 80 07 60 50 0f ...
- Android短信发送
1.布局文件: activity_sms.xml <?xml version="1.0" encoding="utf-8"?> <Linear ...
- Android短信发送流程之多收件人发送(原)
前面的< Android短信发送流程之长短信发送 >中介绍了长短信对于普通短信的区别,而对于多收件人的情况,在SmsMessageSender的queueMessage()方法中我们了解到 ...
- 短信发送失败之短信中心号码异常
发送短信时,短信中心号码默认是从卡里面的 EFsmsp 读到的,有的卡不符合规范,SIM 卡里短信中心号码为空,导致短信发送失败. 排查这种情况,Android手机,可以通过*#*#4636#*#*进 ...
- android短信功能裁剪,Android短信发送功能实现技巧分享
如现在启动一模拟器id 号为5554,运行cmd telnet localhost 5554 输入help 可以看到很多用于模拟器中的功能命令 gsm call 134343434 // 便是呼叫 ...
- Android短信发送流程之长短信发送(原)
从前面< Android短信发送流程之普通短信发送 >流程看到,长短信与普通短信的流程从SmsManager的sendMultipartTextMessage()方法开始区分,现在我们来看 ...
- 阿里云短信服务isv.INVALID_PARAMETERS返回,短信发送失败
阿里云短信服务isv.INVALID_PARAMETERS返回,短信发送失败 因为阿里云这个参数需要json格式,所以你需要debug一下看看这个参数是不是json格式. 我的问题是传参数的时候,多加 ...
- BaoCms短信发送失败问题解答
BAOCMS(又称生活宝系统)是一款本地生活电商O2O门户系统,程序是基于PHP+mysql开发,系统安全稳定,支持二次开发,目前BAOCMS已经成为国内使用最多.功能最强大.性能最稳定的本地电商生活 ...
- 解决ectouch发货提醒短信发送失败问题
ECTouch系统是一款免费开源的手机商城系统,采用国际标准HTML5+CSS3研发,便于二次开发,小编上次也讲解过如何进行短信接口的替换,前几天一个客户找到我说发货提醒短信发送失败,其他都是正常使用 ...
最新文章
- 以58帮帮为例看58同城典型技术架构演变
- 在lnmp1.3布置的web服务器上运行thinkphp3.2.3项目pathinfo路径模式
- 第12课:优化神经网络——网络初始化技巧与超参数调试
- 【TensorFlow】TensorFlow从浅入深系列之五 -- 教你详解滑动平均模型
- golang CI: Use result of type assertion to simplify cases SCC-S1034
- 泰顺县人事劳动社会保障局灾备集成项目招标
- 二分法:木棒切割问题
- 你还在做描述性数据分析吗?卡方检验案例实操
- html5模板区别,网页设计和平面设计理念的六大区别
- 微博登录过程分析以及scrapy模拟登录微博
- linux使用163的yum源配置
- 机器学习周志华第一章
- 最新二次开发仿包图网素材图片源码
- 水仙花数n位c语言程序,水仙花数C语言的
- 谷歌SEO入门的基础知识
- WPF Deactivated和Activated简单使用
- IDEA springboot 项目启动报错 Shorten the command line via JAR manifest or via a classpath file and rerun
- css html 编写凌形图案
- 计算机水平毕业研究生7分落户,研究生毕业如何进行上海积分落户?
- Cryptology Unlocked
热门文章
- Convolutional Neural Networks for Visual Recognition
- ICIP 2009 Papers
- 计算机基本配置要求,Windows10系统对电脑的标准配置要求
- js图片转base64, 支持网络地址 和 本地地址
- 永远不要对父母说这样的话(很感动!)
- skt7850鸿蒙策略,2017LCK春季赛3月5日skt vs kt直播视频:skt 2:1 kt获胜
- QT中学习Opengl---(纹理环绕方式与过滤)
- case when then 与 count联合使用
- android 充电图标
- 成为女神同桌,我只用一行代码