当前位置:编程学习 > wap >>

【急】【急】【急】对android接收消息流程清楚的高手进来看看吧~

最近在研究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格式上差距很大
还望高手指点迷津。。。小弟不胜感激。
--------------------编程问答-------------------- byte字节流,你转换成string或者stringbuffer等类型试试 --------------------编程问答--------------------
引用 1 楼 dinjay 的回复:
byte字节流,你转换成string或者stringbuffer等类型试试

终于有人看帖了,我试过了 上面的结果就是转换成字符串string得到的:
              String a = "";
            for (Object b : push)
            {
                a += b;
            }
输出a
--------------------编程问答--------------------
引用 1 楼 dinjay 的回复:
byte字节流,你转换成string或者stringbuffer等类型试试


用你的方法试了一下果然问题就是出在这里的
正确方法就是应该 String a = new String(push, "UTF-8");这样输出的a字符串就和系统输出的16进制串转换之后的字符串显示一样了 --------------------编程问答-------------------- 恩 要注意编码格式 反正要不就是unicode 要不就是utf8 --------------------编程问答--------------------
引用 4 楼 dinjay 的回复:
恩 要注意编码格式 反正要不就是unicode 要不就是utf8


是啊  就是因为之前没注意这个 吃了亏了 --------------------编程问答-------------------- 我最近也在做这个,我想问一下,这个intent.getByteArrayExtra("data")得到,只能看到数字和字母,汉字全是乱码,你是怎么解析的。 --------------------编程问答--------------------
引用 6 楼 bage1988320 的回复:
我最近也在做这个,我想问一下,这个intent.getByteArrayExtra("data")得到,只能看到数字和字母,汉字全是乱码,你是怎么解析的。


你是在android日志里打印出来的吧?android日志不支持显示中文 --------------------编程问答-------------------- 貌似我在android日志中可以显示中文的。

你看看是不是两边的编码格式不一致导致中文乱码。建议看一下编码格式GB2312,UTF-8等等。 --------------------编程问答-------------------- "UTF-8" 编码无敌
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,