0

私はAndroidでSMSを送信する方法を学んでおり、以下のコードを見てきました:

public class SMSReceiver extends BroadcastReceiver
{
   @Override
   public void onReceive(Context context, Intent intent)
   {
   //---get the SMS message passed in---
   Bundle bundle = intent.getExtras();
   SmsMessage[] msgs = null;
   String str = “”;
   if (bundle != null)
   {
      //---retrieve the SMS message received---
      Object[] pdus = (Object[]) bundle.get(“pdus”);
      msgs = new SmsMessage[pdus.length];
      for (int i=0; i<msgs.length; i++){
         msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
         str += “SMS from “ + msgs[i].getOriginatingAddress();
         str += “ :”;
         str += msgs[i].getMessageBody().toString();
         str += “\n”;
   }
    //---display the new SMS message---
   Toast.makeText(context, str, Toast.LENGTH_SHORT).show();
  }
  }
}

ここで私の質問は、onReceive 関数に渡される Intent オブジェクトの内容をどのように知ることができるかということです。以下のように:

Object[] pdus = (Object[]) bundle.get(“pdus”);

バンドル オブジェクトに「pdus」キーがあることを確認するにはどうすればよいですか? API ドキュメントに手がかりが見つかりません。関連情報がどこにあるか知っている人はいますか?

SMS インテントが onReceive 関数に渡すものだけでなく、他のシステム関連のインテントも知りたいのですが、API ドキュメントで関連情報を見つけることができません。その情報は本当に存在するのだろうか?

4

3 に答える 3

2

pdusバンドルにキーを使用 してキーと値のペアが含まれているかどうかを確認できbundle.containsKey("pdus")ます。trueProtocol Data Units

したがって、PDU を処理するためのチェックは、if (bundle != null && bundle.containsKey("pdus"))

于 2012-09-25T12:48:49.280 に答える
1

このページからこのコードをスワイプしました:http://davanum.wordpress.com/2007/12/15/android-listen-for-incoming-sms-messages/

SmsMessage[] messages = Telephony.Sms.Intents.getMessagesFromIntent(intent);

Androidにはすでにメッセージを取得するメカニズムがあるようです。これはあなたが探しているものですか?

于 2012-09-25T13:49:03.530 に答える
0
public void onClick(View v)
{
   //sendSMS(“5556”, “Hello my friends!”);
   Intent i = new
   Intent(android.content.Intent.ACTION_VIEW);
   i.putExtra(“address”, “5556; 5558; 5560”);
   i.putExtra(“sms_body”, “Hello my friends!”);
   i.setType(“vnd.android-dir/mms-sms”);
   startActivity(i);
}

上記のように SMS アプリケーションを呼び出すためのインテントに渡したい場合、考えられるすべてのキーを確認するにはどうすればよいでしょうか? それらがどこかに文書化されていることを願っています。

于 2012-09-25T13:41:17.857 に答える