Попытка идентифицировать подтверждение доставки SMS

В настоящее время я пытаюсь получить подтверждение для каждого отправленного SMS. Я должен быть уверен, что мои смс отправлены, поэтому я использовалBroadCastReceived чтобы получить информацию:

Intent sentIntent = new Intent(SMS_SEND);
    sentIntent.putExtra("key", idSms);
    PendingIntent sentPI = PendingIntent.getBroadcast(getApplicationContext(), 0, sentIntent, PendingIntent.FLAG_UPDATE_CURRENT);

    SmsManager manager = SmsManager.getDefault();
    try{
        manager.sendTextMessage(exp, null, sms, sentPI, null);
        put("sending " + sms); //Just a method to print in a textview use has a console
    } catch (IllegalArgumentException e){
        put("Exception " + e.getMessage());
    }

и использовать приемник вещания, как это

public void onReceive(Context context, Intent intent){
        String idsms = intent.getExtras().getString("key");

        switch (getResultCode()) {
            case Activity.RESULT_OK:
                put("ACK : #" + idsms);

                break;
            case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
            case SmsManager.RESULT_ERROR_RADIO_OFF:
            case SmsManager.RESULT_ERROR_NULL_PDU:
            case SmsManager.RESULT_ERROR_NO_SERVICE:
                put("BOOM " + getResultCode() + "\n\tfrom sms #" + idsms);
                break;
        }
    }

Это работает как талисман, пока я не попытаюсь отправить несколько сообщений одновременно, дополнительный прием всегда происходит от последней отправки SMS, поэтому я не могу определить, какой текст отправляется, а какой нет.

Вот простой пример того, что произойдет.

Когда я использую цикл для отправки 3sms:

id: 1, сообщение: SMS 1
id: 2, сообщение: SMS 2
id: 3, сообщение: SMS 3

И полученный получит:

ACK: № 3
ACK: № 3
ACK: № 3

Я понимаю, что это происходит из PendingIntent.FLAG_UPDATE_CURRENT, но я не могу найти решение. Любой может объяснить мне, как я должен использовать PendingIntent.getBroadcast (..), чтобы справиться с этим или, по крайней мере, поставить меня на правильный путь.

Ответы на вопрос(1)

Ваш ответ на вопрос