从错误处理角度记录一下Android发送彩信

简单记录,为了下次忘记的时候可以很快回忆起。

发送或接受彩信时经过处理走到TransactionService.java,在这个类里面,这个类里面有著名的

beginMmsConnctivity()操作,彩信连接建立成功后就可以进行真正的数据传输,根据当前发送或接受等不同操作,

可以new RetrieveTransaction,SendTranscation等进行传输,以SendTranscation为例,TransactionService

会调用processTransaction()即SendTranscation里的process进行传输数据,SendTranscation里面的

run会封装M-Send.req数据包,更新数据库,调用sendPdu()发送数据,最后会调用到

httpUtils.java里面的httpConnection()进行数据传输,这个函数里面有些异常处理以catch expection形式分发到

handleHttpConnectionException().当有异常发生时,在这个函数里面会有字符串提示用户,这也就是发送彩信时看到

的一些感觉莫名其妙的toast提示的一部分来处。当发送M-Send.req到彩信中心,服务器会返回M-Send.conf的数据包,

M-Send.conf的解析仍然是在SendTranscation.java里面进行,会做数据库的更新,

M-Send.conf这个包里会包含Response-Status字段标明是发送成功与否的状态,如果是失败,根据原因有重试机制,这是在

RetryScheduler.java中进行处理,有些错误是permanent暂时无法恢复,处理时会标记为发送失败,显示给用户一个字符串提示,

比如0x82错误为RESPONSE_STATUS_ERROR_SERVICE_DENIED,出现这种错误的一种情况为,用户不停的发送彩信,短时间内达到了运营商

设置的上限,此时就不能进行进行发送,服务器会报这个ox82的错误,此时移动用户还会收到10658155发送来的短信提醒

“尊敬的客户,您刚才提交的彩信失败,因为提交的彩信条数过多已超过系统限制”,但到底是多少条移动的客服回答不上来,大概有60条左右吧,

不能发送的时间也没确定,但是上午不能发送,下午再试就可以发送了

  • 0
    点赞
  • 1
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值