微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

解析SMS PDU

如何解决解析SMS PDU

| 似乎是我需要解析在SMS broadcastReceiver期间接收到的PDU字节数组:
@Override
public void onReceive(Context context,Intent intent) 
{ 
    Bundle bundle = intent.getExtras();
    Object[] pdus = (Object[]) bundle.get(\"pdus\");
}
有人可以指出我该怎么做吗? 我知道PDU可以使用ѭ1来处理,但这不是我想要的。我需要对pdu字节进行更精确的控制。     

解决方法

我找到了解决方案-有一个不错的Java和点NET库(在Apache许可下),该库可以处理所有与PDU相关的内容-解析等。这是SMSLib     ,
@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();
    }                
}
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。