MIUI ROM接收WAP PUSH短信的补丁

我的HTC Desire HD一直在用小米MIUI ROM,一切都好,唯有个问题就是收不到WAP PUSH的短信。在MIUI的论坛上叫了好久都没解决,于是决定自己尝试一下。

好久没碰Java了,又是第一次做Android的程序,发现对于WAP PUSH的编码资料很少,而且很多都不正确,好不容易折腾出来了个原型,基本满足自己的需要就差不多了。

此程序为MIUI ROM接收WAP PUSH短信的补丁,仅在HTC DHD和小米手机上测试通过(理论上Andoird 2.3.3或以上都应该可以)。


程序主界面:Andoird是消息驱动,安装包写好直接就注册到系统,使用时都不需要运行程序,主界面主要是信息提示


接收到第一条WAP PUSH信息时,MIUI会有一个接收WAP PUSH的授权,可以选择“下次不再询问”并“允许”就不会再出现了


接收到的WAP PUSH都存放到短信收件箱里面了,只是暂时没获取到手机号码,提供显示为“WAP PUSH”


MIUI 1.11.18官方版本已经支持
【短信】新增 短信支持WAP PUSH:http://www.miui.com/thread-329468-1-1.html
获取手机号码的问题MIUI开发组也进行了答复:源号码需要framework从sms header中提取,而wap push广播不带这个东西。应用层是无法实现的。

版本201109083
已知问题:
1)未获取到手机号码,发件人显示为“WAP PUSH”;
2)主界面和屏锁界面短信图标没有更新未读信息数量标识

版本20110908
已知问题:
1)未获取到手机号码,发件人显示为“WAP PUSH”;(Intent中Extra只有pduType, data, header, transactionId四个Bundle,貌似没发现有手机号码,header转换为byte[]长度只有1,内核问题?!)

安装包下载:WapPushReceiver.apk
源码下载:WapPushReceiver.rar

供爱好者参考学习,其中对于WAP PUSH数据的解析应该还是不很完整,不过测试了飞信PC客户端发送文件到手机、移动号簿管家客户端下载到手机、无线音乐12530音乐下载到手机发送的WAP PUSH都是可以正常解析的,只是MIUI的浏览器对于一些WAP接入的下载似乎支持还有问题,改用UC浏览器基本就没啥问题了。

一些网上搜索到的WAP PUSH资源:
《Another WAP Push over SMS encoding》:http://mobiletidings.com/2009/02/26/wap-push-over-sms-si-encoding/
《WAPPUSH 原理 基于短信网关WAP推送的实现》:http://tinymce.moxiecode.cp/mce_temp_url
《通过短信网关发送Wappush》:http://hi.baidu.com/lrxin0630/blog/item/e96e15d4e588e60aa18bb7da.html
《Android中WAP PUSH的实现分析》:http://www.iandroid.cn/bbs/android-9312-1-1.html
《Android 短信 彩信 wap push的接收》:http://blog.csdn.net/zengyangtech/article/details/5885508