Приемник Android SMS Delivery Broadcast не работает в эмуляторе

Я создаю приложение, в котором есть модуль для отправки смс. Я использую 2 широковещательных приемника и ожидающие намерения, один для подтверждения отправки смс, а другой для доставки ... приемник широковещательной рассылки смс работает нормально, но доставка не приходит.

Я использую следующий код в сервисе.

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

        PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0,
                new Intent(DELIVERED), 0);

            //---when the SMS has been sent--- is working alright
            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;
                    }
                    unregisterReceiver(this);
                }
            }, new IntentFilter(SENT));

            //---when the SMS has been delivered--- this part is not working 
            registerReceiver(new BroadcastReceiver()
            {


                @Override
                public void onReceive(Context arg0, Intent arg1) 
                {
                    switch (getResultCode())
                    {
                        case Activity.RESULT_OK:
                            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;           

                        default :
                            Toast.makeText(getBaseContext(), "Unable to generate delivery Report", 
                                    Toast.LENGTH_SHORT).show();
                    }
                    unregisterReceiver(this);
                }
            }, new IntentFilter(DELIVERED));        

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

person Aayush Rana    schedule 06.03.2013    source источник
comment
Неважно .. это сработало на сотовом ... я на самом деле тестировал его на эмуляторе   -  person Aayush Rana    schedule 07.03.2013
comment
возможный дубликат Android: не получено подтверждение доставки SMS в эмуляторе   -  person Flow    schedule 27.09.2013


Ответы (1)


SMS, отправленное поставщику сетевых услуг, означает, что вы можете получить уведомление о доставке. Код работает на устройстве, но в эмуляторе он не содержит никакого поставщика услуг. Таким образом, он не показывает уведомление о доставке на эмуляторе.

person Ram    schedule 19.08.2013