最近在研究wap push,现在试过自己写个方法来接收wap push,比如139的邮件到达通知的推送消息
现在试过如下方法:广播接收器配上:
<receiver android:name=".SmsReceive" android:enabled="true">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
<intent-filter>
<action android:name="android.provider.Telephony.WAP_PUSH_RECEIVED" />
<data android:mimeType="application/vnd.wap.sic" />
</intent-filter>
</receiver>
当触发wap push的action时使用byte[] push = intent.getByteArrayExtra("data");来获取,但是打印出的push数组与手机系统在eclipse控制台上打印出的格式有很大的差距,很不解。
我做过如下考虑:这个intent中get“data”对应得值,也就是说系统事先已近将数据存放在intent中并将键命名为data,这里是不是已经对数据进行过操作,或者说这是一种加密。请高人给解释下,或者能给出其他获取消息的方法。
下面是我在控制台上拿下来的数据:
系统打印出来的消息为:72060a03ae81eaaf828dc3b48402056a10e982aee4bbb63a
77617020707573680045c60c037761706d61696c2e3130303836
2e636e2f693f663d343026693d3232363931333137393300080183000101,将该串16进制数转换成字符串后基本显示正常内容,中间包含了邮件的主题和url。
但是将push数组打印出来却是下面的内容:2510616-23-126-82-28-69-74581199711232112117115104069-581231199711210997105108464948485654469911047105631026
15248381056150505457495149555751081-125011格式上差距很大
还望高手指点迷津小弟不胜感激。
现在试过如下方法:广播接收器配上:
<receiver android:name=".SmsReceive" android:enabled="true">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
<intent-filter>
<action android:name="android.provider.Telephony.WAP_PUSH_RECEIVED" />
<data android:mimeType="application/vnd.wap.sic" />
</intent-filter>
</receiver>
当触发wap push的action时使用byte[] push = intent.getByteArrayExtra("data");来获取,但是打印出的push数组与手机系统在eclipse控制台上打印出的格式有很大的差距,很不解。
我做过如下考虑:这个intent中get“data”对应得值,也就是说系统事先已近将数据存放在intent中并将键命名为data,这里是不是已经对数据进行过操作,或者说这是一种加密。请高人给解释下,或者能给出其他获取消息的方法。
下面是我在控制台上拿下来的数据:
系统打印出来的消息为:72060a03ae81eaaf828dc3b48402056a10e982aee4bbb63a
77617020707573680045c60c037761706d61696c2e3130303836
2e636e2f693f663d343026693d3232363931333137393300080183000101,将该串16进制数转换成字符串后基本显示正常内容,中间包含了邮件的主题和url。
但是将push数组打印出来却是下面的内容:2510616-23-126-82-28-69-74581199711232112117115104069-581231199711210997105108464948485654469911047105631026
15248381056150505457495149555751081-125011格式上差距很大
还望高手指点迷津小弟不胜感激。
解决方案 »
- android应用,怎么做多语言切换和多主题切换
- sax pull解析xml异常 xml.ExpatParser$ParseException: At line 1, column 0: no element
- 求指教 为什么android模拟器无法上网
- 对DLNA规则有了解的朋友,进来探讨一下
- 100分求解答,监听下载功能
- 如何判断手机中是否有GPS模块设备
- 视频监控 移动视频监控 手机视频监控 视频采集 压缩编解码
- android 在程序内如何得到/data目录的权限呢?
- 开发安卓应用软件
- android 有没有更改默认字体颜色的功能?
- android 短信接收和判别
- 回复即给分!请问谁知道哪家的开发板好啊!我要买一个
String a = "";
for (Object b : push)
{
a += b;
}
输出a
用你的方法试了一下果然问题就是出在这里的
正确方法就是应该 String a = new String(push, "UTF-8");这样输出的a字符串就和系统输出的16进制串转换之后的字符串显示一样了
你是在android日志里打印出来的吧?android日志不支持显示中文