如何以PDU格式 备份和恢复彩信(MMS)

        最近在研究如何备份和恢复Message,发现网上实现的大多是对短信的备份与恢复,大多数方法都是采用XML的方式,这里我就不多加描述了。

我们都知道 ,手机中的MMS 是以PDU 的格式进行收发的,Android 系统中framework层有对MMS 封装为PDU格式的API ,让我们设想,如果以PDU格式

的文件对MMS进行备份和恢复,我们就少去了很多麻烦,下面我们来看一下核心的函数。

Google framework层中提供了专门的API ,在如下路径中:android\frameworks\base\core\java\com\google\android\mms\

在这个路径下包含很多文件,其中我们使用到的主要是3个类:

PduPersister

     定义了对Android 系统识别的GenericPdu (android 自定义的数据类型)格式的对象的各种操作,我们可以同过函数 PduPersister.getPduPersister(context).load(uri)返回一个

GenericPdu 的对象。

 

PduComposer

   可以实现将GenericPdu 对象封装为标准的PDU格式数据流,可以使用

    GenericPdu   msg = PduPersister.getPduPersister(context).load(uri);

    byte[] message=new PduComposer(context, msg).make();

 这样我们就实现了MMS 备份为PDU格式

 

PduParser 

   可以实现对备份PDU格式数据流的解析

      Uri CONTENT_URI_RESTORE = Uri.parse("content://mms/sent");

     GenericPdu msg= new PduParser(message).parse();
     Uri uri=  PduPersister.getPduPersister(context).persist(msg, CONTENT_URI_RESTORE);

其中 CONTENT_URI_RESTORE 为MMS要存在的位置,message 为通过PduComposer备份数据流,persist 方法根据URI 实现了将MMS插入到mmssms.db中

mmssms.db 中存储了手机中所有的彩信。

 

通过如上可知,我们通过这几个函数就可以实现对MMS的备份与恢复,当然具体实现起来还需要更多细节上的判断,例如 PUD 格式中对MMS的插入时间和彩信是在收件箱和发件箱

中都没有记录,这样我们就需要对这些字段进行单独记录,恢复的时候再重新插入到mmssms.db中,还有恢复的时候如何插入,这些都需要进一步的去判断,这样就需要我们不断

的去完善。

 

所以以上是对MMS 备份和恢复为PDU格式的核心方法,希望能对大家有帮助。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值