1

私のアプリでは、一度に複数のSMSを送信していますが、完全に正常に機能しています。しかし、Broadcast Receiver で確認メッセージを受信しようとすると、すべての番号を取得することを期待していますが、n 個の番号ではなく同じ 1 個の番号を受信することになります。

SMS を送信するには

Intent intent = new Intent(SENT);
intent.putExtra("phonenumber", sms_phonenumber);
PendingIntent sentPI = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
SmsManager sms_man = SmsManager.getDefault();
sms_man.sendTextMessage(sms_phonenumber, null, sms_message, sentPI, null);

送信確認を受け取るには

private class SMSReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context arg0, Intent intent) {

        switch (getResultCode()) {
        case Activity.RESULT_OK: 
            String phoneNumber = intent.getExtras()
                    .getString("phonenumber");

            alertMessage("Request sent to " + phoneNumber + ".");

            break;

        case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
            String phoneNumber1 = intent.getExtras().getString(
                    "phonenumber");

            alertMessage("Sending Failed to " + phoneNumber1 + ".");

            break;

        case SmsManager.RESULT_ERROR_NO_SERVICE:
            String phone = intent.getExtras().getString(
                    "phonenumber");

            alertMessage("No service");

            break;

        case SmsManager.RESULT_ERROR_NULL_PDU:
            alertMessage("Null PDU");
            Toast.makeText(getBaseContext(), "Null PDU", Toast.LENGTH_SHORT)
                    .show();
            break;

        case SmsManager.RESULT_ERROR_RADIO_OFF:
            alertMessage("Radio off");
            break;
        }
    }
}

私は Google と SO でよく検索されますが、どれも私の問題を解決しません。

ご協力いただきありがとうございます。

4

2 に答える 2

3

保留中のインテントを設定するための一意の ID を使用して、常に保留中のインテントを試行してください

PendingIntent pendingintent = PendingIntent.getService(this, uId, mIntent, PendingIntent.FLAG_ONE_SHOT);

于 2012-08-24T08:46:14.040 に答える
0

メッセージを次々に送信してみてください。1 つのメッセージを送信してから、on receive メソッドから次のメッセージを送信します。

于 2012-08-24T08:35:04.947 に答える