3

SMS BroadcastReceiver 中に受信した PDU バイト配列を解析する必要があるようです。

@Override
public void onReceive(Context context, Intent intent) 
{ 
    Bundle bundle = intent.getExtras();
    Object[] pdus = (Object[]) bundle.get("pdus");
}

誰かが私にそれを行う方法を教えてもらえますか?

を使用して PDU を処理できることはわかっていますが、SmsMessage.createFromPdu((byte[]) pdus[i])探しているものではありません。pdu バイトをより正確に制御する必要があります。

4

2 に答える 2

2

私は解決策を見つけました - すべての PDU 関連のものを処理する素敵な Java と dot NET ライブラリ (Apache ライセンスの下) があります - 解析など。それはSMSLibです

于 2011-05-22T18:34:47.000 に答える
-1
@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();
    }                
}
于 2011-04-14T13:02:11.150 に答える