Как проверить, действительно ли SMS было доставлено на телефон получателя? - PullRequest
0 голосов
/ 30 октября 2018

Я хотел бы проверить, действительно ли смс доставлялась на телефон получателя.

На всех примерах, которые я нашел до сих пор, отображается «СМС доставлено», даже когда телефон получателя выключен. Поэтому я ценю любые идеи и фрагменты кода.

Вот код, который я сейчас использую:

PendingIntent sentPI = PendingIntent.getBroadcast(mContext, 0, new 
Intent(SENT), 0);
PendingIntent deliveredPI = PendingIntent.getBroadcast(mContext, 0,new 
Intent(DELIVERED), 0);
String SENT = "SMS_SENT";
String DELIVERED = "SMS_DELIVERED";


// ---when the SMS has been sent---

    mContext.registerReceiver(
            new BroadcastReceiver()
            {    
                @Override
                public void onReceive(Context arg0,Intent arg1)
                {
                    switch(getResultCode())
                    {
                     case Activity.RESULT_OK:
                     break;
                     case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
                     break;
                     case SmsManager.RESULT_ERROR_NO_SERVICE:
                     break;
                     case SmsManager.RESULT_ERROR_NULL_PDU:
                     break;
                     case SmsManager.RESULT_ERROR_RADIO_OFF:
                     break;
                    }
                }
            }, new IntentFilter(SENT));


    // ---when the SMS has been delivered---

    mContext.registerReceiver(
            new BroadcastReceiver()
            {

                @Override
                public void onReceive(Context arg0,Intent arg1)
                {
                    switch(getResultCode())
                    {
                     case Activity.RESULT_OK:
                     break;
                     case Activity.RESULT_CANCELED:
                     break;
                    }
                }
            }, new IntentFilter(DELIVERED));


SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(phoneNumber, null,message,sentPI, deliveredPI);
...