sms винаги показва изпратени sms дори при използване на случаен номер на мобилен телефон без отчети за доставка - android

Защо винаги, когато изпращам sms до номер за контакт, той винаги казва „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