搜尋此網誌

2011年4月11日 星期一

[Android] 發送簡訊sms含Receiver

//---sends a SMS message to another device---
public void sendSMS(String phoneNumber, String message){      
     
   String SENT = "SMS_SENT";
   String DELIVERED = "SMS_DELIVERED";
     
   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---
   registerReceiver(new BroadcastReceiver(){
   @Override
   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: //有傳送到
         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();
   sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI);               
}

沒有留言:

張貼留言

標籤