之前写过短信接收,现在又要求写彩信的接收,以为是差不多的,但开发了才发现彩信要复杂很多,开发中也遇到了不少问题,还好大部分都解决了。牢骚发完了,下面进入正题。
彩信复杂的原因我觉得有这几个问题,1、彩信的内容要存多个表2、彩信附件的格式有多种,解析不太一样。
先看下彩信的在android里是如何存储的http://johnsonxu.iteye.com/blog/1406782,这篇文章讲了很多,关键合适涉及到pdu表和part表,pdu是存彩信相关信息的,part是存储彩信附件的相关信息的。
要读取这两个表只能通过ContentResolver来查询 content://mms/inbox,content://mms/part/。对于附件的类型有各种 text、images、audio、video,还有smil,smil可以展示之前几种格式的集合。具体实现的代码可以看下http://www.apkbus.com/android-13554-1-1.html这个篇文章,都写的很清楚。
在开发中我是通过监听彩信数据库的方式来查询彩信的,但是通过.registerContentObserver注册content://mms/总是收不到事件,最后只好注册 content://mms-sms实现了,不知道有没其他的方法啊。