невозможно зарегистрировать получателя для отправленных SMS - PullRequest
0 голосов
/ 21 марта 2012

У меня есть класс AlarmReceiver, который выполняется, когда в конкретное время звучит сигнал тревоги (установленный в состоянии тревоги)

Я отправляю смс в классе AlarmReciever, но не могу зарегистрировать получателя для отправки SMS.

вот код

                  private int sendSMS(String messageToSend,String contactsToSend,Context context)
       {        
                StringTokenizer  tok=new StringTokenizer(contactsToSend);
                int n=tok.countTokens();
                String SENT = "SMS_SENT";
                String DELIVERED = "SMS_DELIVERED";
                final AlertDialog dialog = new AlertDialog.Builder(context).create();

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

                //---when the SMS has been sent---
                **/*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;
                        }
                        return;
                    }
                }, new IntentFilter(SENT));*/



        SmsManager sms = SmsManager.getDefault();
        String phoneNumber;
        for(int i=0;i<n;i++)
        {
                phoneNumber=tok.nextToken();
                sms.sendTextMessage(phoneNumber, null, messageToSend, null,null); 
        }
        return 1;

      }

, когда я удаляю комментарий из строки (жирным шрифтом), он выдает ошибку.Так как же я могу зарегистрировать приемник, чтобы проверить, была ли отправлена ​​смс или нет.

1 Ответ

0 голосов
/ 21 марта 2012

вместо регистрации получателя вы можете создать сервис, подобный этому

  public class SMSObserver extends BroadcastReceiver 
    {
        static final String ACTION ="android.provider.Telephony.SMS_SENT";

        @Override 
        public void onReceive(Context context, Intent intent) 
        { 
            if (intent.getAction().equals(ACTION)) 
            {
                     //your action code here
            }            
        }
    }

but if you want register reciever you can use in your onCreate()

 // SendSmsObserver smsObeserver = (new SendSmsObserver(new Handler()));
       // ContentResolver contentResolver = this.getContentResolver();
       // contentResolver.registerContentObserver(Uri.parse("content://sms"),true, smsObeserver);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...