Android的:消息在数据短信返回null

我有一个Android应用程序,我想接收特定端口上的数据的短信。 MY广播接收器的的onReceive方法被当短信达到了我的手机叫。 当我打印的意图,Log.i(“短信接收器:收到的意图”,intent.toString()); 我可以看到的DataMessage具有特殊的端口上接收。 但是,当我使用的MSG [I] .getMessageBody()。的toString()它retuns空。 实际的消息不可用。 我有交叉检查发件人和它是好的。 当我卸载我的设备应用程序和发送数据短信到我的手机,短信进入到收件箱,并在手机上显示为“不支持的内容”的消息。 它是什么做的留言我发送的格式? 下面是用于接收数据短信清单条目

- >

<action android:name = "android.intent.action.DATA_SMS_RECEIVED"/> <data android:scheme="sms"/> <data android:host="localhost"/> <data android:port="16000"/> </intent-filter> </receiver> </application> <uses-sdk android:minSdkVersion="4" />

任何帮助将高度赞赏。

--------------解决方案-------------

您可能使用'getMessageBody()得到一个消息文本。 但是,这是文本短信。 对于数据的短信,你需要使用'getUserData()代替,得到一个消息体。 代码应该是这样的

Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
if (bundle != null)
{
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
for (int i=0; i<msgs.length; i++){
msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
byte[] userData = msgs[i].getUserData();
}

}

分类:机器人 时间:2015-03-14 人气:0
本文关键词: 机器人
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.425 (s). 10 q(s)