2012-03-21 65 views
0

註冊reciver我有當在特定的時間鬧鐘響起(報警設置)不能發送短信

我送AlarmReciever類內部短信執行的AlarmReciever類,但我不能註冊reciever短信發送。

這裏是代碼

    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; 

     } 

當我刪除線註釋(粗體)提示錯誤。 因此,我如何註冊一個接收者來檢查短信是否被髮送。

+0

你得到了什麼差錯的服務? – 5hssba 2012-03-21 08:41:32

+0

我們不能在另一個接收器內部有廣播接收器 – kamal 2012-03-25 08:59:33

回答

0

而不是註冊reciever您可以創建這樣

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);