1

新しく着信したSMSメッセージをキャッチできます。しかし、それがマルチパートメッセージの場合、私のブロードキャストレシーバーはメッセージのすべての部分を数回受信します。

デフォルトのメッセージングアプリのように、メッセージ全体を一度に受信する方法はありますか?

4

1 に答える 1

3

聖なる...!

Androidのソース(このファイル)を読んだ後、これはとてもばかげた質問であることに気付きました...

これが私の受信機です:

@Override
public void onReceive(Context context, Intent intent) {
    Log.d(ClassName, "received SMS");

    Bundle bundle = intent.getExtras();
    if (bundle != null) {
        Object[] pdus = (Object[]) bundle.get("pdus");
        // here is what I need, just combine them all  :-)
        final SmsMessage[] messages = new SmsMessage[pdus.length];
        Log.d(ClassName, String.format("message count = %s", messages.length));
        for (int i = 0; i < pdus.length; i++) {
            messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
        }
    }
}// onReceive()

おっと...私は自分のコードを見るのが面倒でした。私はすでにメッセージのすべての部分を一度に受け取りました。

于 2012-04-05T18:31:37.100 に答える