2012-03-21 73 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);