似乎我需要解析SMS BroadcastReceiver过程中收到的PDU字节数组:
@Override
public void onReceive(Context context, Intent intent)
{
Bundle bundle = intent.getExtras();
Object[] pdus = (Object[]) bundle.get("pdus");
}有人能告诉我怎么做吗?
我知道可以使用SmsMessage.createFromPdu((byte[]) pdus[i])处理PDU,但这不是我想要的。我需要更精确地控制pdu字节。
发布于 2011-05-23 02:34:47
我找到了解决方案--有一个很好的Java和.Net库(在Apache许可下),它可以处理所有与PDU相关的东西--解析等等。我是SMSLib
发布于 2011-04-14 21:02:11
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
if (bundle == null) return;
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
smsCount = msgs.length;
String originalAddress;
String tmpSmsBody;
for (int i=0; i<msgs.length; i++){
msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
// Original Address
originalAddress = msgs[i].getOriginatingAddress();
// Message body
tmpSmsBody= msgs[i].getMessageBody().toString();
}
}https://stackoverflow.com/questions/5663257
复制相似问题