2012-04-05 20 views
0

新しく着信するSMSメッセージを捕まえることができます。しかし、それがマルチパートのメッセージである場合、私の放送受信機はメッセージのすべての部分を何度か受信します。着信マルチパートSMSメッセージを聞く

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

+1

デフォルトのメッセージングアプリケーションがメッセージ全体を一度に受信したことをどう知っていますか?私はそれを別々に受け取ってから内部的にそれらを組み合わせると思います。 – slayton

+0

@slaytonありがとうございます。だから私はdatetimeを比較し、すべての部分を1つにまとめることができると思います。あなたはこのメッセージが大きなメッセージの一部であることを示すフラグがどこかにあると思いますか? –

+0

私は知らないけど、あなたはいつもAndroidのソースを見て、彼らがどのようにそれを行うか見ることができます。 – slayton

答えて

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() 

おっと...私がするのが面倒でした私のコードを見てください。私はすでにメッセージのすべての部分を一度に持っています。

+0

答えをここで確認してくださいhttp://stackoverflow.com/questions/7469881/broadcastreceiver-for-multipart-sms 各インテントには、すべての部分をまとめた単一のメッセージが含まれています。容易いものだ –