0
AndroidでSMSメッセージを送信するプログラムを作成しています。送信ボタンがクリックされた後、私は送信済みのようなメッセージのステータスを取得したいと思います。この部分はうまく動作します。問題は、メッセージが送られてきて、放送中に配信される電話番号を取得したいということです。一度に多くのユーザーにSMSを送信できるため、これが必要です。どうやってやるの?私はIntentにnoを入れて、それを放送受信機の中に入れようとしましたが、動作しません。ここでのサンプルコードは、次のとおりです。ブロードキャスト受信後にインテントからデータを取得できませんでした
public void sendSMS(final String message, final String tele) {
String SENT = "SMS_SENT";
String DELIVERED = "SMS_DELIVERED";
SMSStatus sentStatus = new SMSStatus();
SMSDelivery deliveryStatus = new SMSDelivery();
//broadcast these during send and delivery
PendingIntent sentPI = PendingIntent.getBroadcast(SMS.this, 0, new Intent(SENT).putExtra("telephone", tele), 0);
PendingIntent deliveredPI = PendingIntent.getBroadcast(SMS.this, 0, new Intent(DELIVERED).putExtra("telephone",tele), 0);
registerReceiver(sentStatus, new IntentFilter(SENT));
registerReceiver(deliveryStatus, new IntentFilter(DELIVERED));
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(tele, null, message, sentPI, deliveredPI);
}
そして、放送受信機の1:
class SMSStatus extends BroadcastReceiver {
@Override
public void onReceive(Context arg0, Intent arg1) {
//Toast.makeText(SMS.this, "Sent to " + arg1.getExtras().getString("telephone"), Toast.LENGTH_LONG).show();
String no = arg1.getExtras().getString("telephone");
switch (getResultCode()) {
case Activity.RESULT_OK:
Toast.makeText(getBaseContext(), "Message sent " + no, Toast.LENGTH_SHORT).show();
break;
...
}
}
情報だけのために、最初のコードが異なる電話なしを渡してループ内で呼ばれています。
? – varunkr
@varunkrそれは常に最初のtelだけを表示します。いいえ。それは2番目または3番目の電話を取得しません。いいえ。 – birraa
ループ部分も投稿してください。 – varunkr