【问题标题】:Parsing SMS PDU解析 SMS PDU
【发布时间】:2011-06-21 08:41:39
【问题描述】:

似乎是我需要解析 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 字节。

【问题讨论】:

    标签: android parsing sms pdu


    【解决方案1】:

    我找到了解决方案 - 有很好的 Java 和 dot NET 库(在 Apache 许可下),它处理所有与 PDU 相关的东西 - 解析等等。我是SMSLib

    【讨论】:

    【解决方案2】:
    @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();
        }                
    }
    

    【讨论】:

    • 请仔细阅读我的问题。我知道函数 createFromPdu() - 这不是我要找的!
    • @barmaley 如果您想要更精确的控制,您应该自己解析它。您可以搜索短信标准。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-29
    • 2011-04-05
    • 1970-01-01
    相关资源
    最近更新 更多