смс всегда отображает смс, отправленные даже при использовании случайного номера мобильного телефона без отчетов о доставке - android

Почему всякий раз, когда я отправляю смс на контактный номер, он всегда говорит «SMS отправлено», когда я просто использовал случайный номер мобильного телефона, например «12345678910», который, конечно, имеет 11 цифр. Кроме того, он не показывает тост, когда сообщение действительно доставлено или нет.

private void sendSMS(String phoneNumber, String message)
{        
        sentFailed = new ArrayList<String>();

        final String phoneNumberCopy = phoneNumber;
        String SENT = "SMS_SENT";
        String DELIVERED = "SMS_DELIVERED";

        PendingIntent sentPI = PendingIntent.getBroadcast(this, 0,
            new Intent(SENT), 0);

        PendingIntent deliveredPI = PendingIntent.getBroadcast(this, uniqueIdPerSMS++,
                new Intent(DELIVERED), PendingIntent.FLAG_CANCEL_CURRENT);

        //---when the SMS has been sent---
        registerReceiver(new BroadcastReceiver()
        {
            public void onReceive(Context arg0, Intent arg1)
            {
                switch (getResultCode())
                {
                    case Activity.RESULT_OK:
                        Toast.makeText(getBaseContext(), "SMS Sent", 
                                Toast.LENGTH_SHORT).show();
                        break;
                    case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
                        Toast.makeText(getBaseContext(), "Generic failure", 
                                Toast.LENGTH_SHORT).show();
                        break;
                    case SmsManager.RESULT_ERROR_NO_SERVICE:
                        Toast.makeText(getBaseContext(), "No service", 
                                Toast.LENGTH_SHORT).show();
                        break;
                    case SmsManager.RESULT_ERROR_NULL_PDU:
                        Toast.makeText(getBaseContext(), "Null PDU", 
                                Toast.LENGTH_SHORT).show();
                        break;
                    case SmsManager.RESULT_ERROR_RADIO_OFF:
                        Toast.makeText(getBaseContext(), "Radio off", 
                                Toast.LENGTH_SHORT).show();
                        break;
                }
            }
        }, new IntentFilter(SENT));

        //---when the SMS has been delivered---
        registerReceiver(new BroadcastReceiver()
        {
            @Override
            public void onReceive(Context arg0, Intent arg1) 
            {
                switch (getResultCode())
                {
                    case Activity.RESULT_OK:
                        sentFailed.remove(phoneNumberCopy);
                        Toast.makeText(getBaseContext(), "SMS delivered", 
                                Toast.LENGTH_SHORT).show();
                        break;
                    case Activity.RESULT_CANCELED:
                        Toast.makeText(getBaseContext(), "SMS not delivered", 
                                Toast.LENGTH_SHORT).show();
                        break;                        
                }
            }

        }, new IntentFilter(DELIVERED));  

        SmsManager sms = SmsManager.getDefault();

        //send sms
        sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI);        
}

person Usui Takumi    schedule 17.01.2013    source источник


Ответы (1)


SMS SENT появилось, потому что вы получили отправленный отчет от метода onRecive. Когда ваше сообщение отправлено, вызывается метод обратного вызова Onrecive, и он запускает SMS SENT Message

person Dapper Dan    schedule 01.07.2013