最近在研究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格式上差距很大
还望高手指点迷津小弟不胜感激。
解决方案 »
- 下载到/data/data/package里面的文件的没有读取权限
- 开发服装的手机商城,有经验的进来一下,问点问题。
- 安装APIDEMO时出现Installation error: INSTALL_FAILED_MISSING_SHARED_LIBRARY
- 短代问题
- 从服务器返回的json格式数据往google map上标记问题~SOS!
- Launch里如何将特定图标放在第一位
- Android string.xml 显示特殊符号
- Android socket通信问题 求帮助
- 安装android studio提示JAVA_HOME变量配置不正确 但我配置是对的 这个是怎么回事啊
- 安卓推送基本问题
- android 短信接收和判别
- 回复即给分!请问谁知道哪家的开发板好啊!我要买一个
String a = "";
for (Object b : push)
{
a += b;
}
输出a
用你的方法试了一下果然问题就是出在这里的
正确方法就是应该 String a = new String(push, "UTF-8");这样输出的a字符串就和系统输出的16进制串转换之后的字符串显示一样了
你是在android日志里打印出来的吧?android日志不支持显示中文