Android发送短信

2023-06-15,,

首先做好布局,然后在“发送”做点击事件,如下所示:

String phoneNumber = editPhone.getText().toString().trim();
String message = editMessage.getText().toString().trim();
sendSMS(phoneNumber,message);  

private void sendSMS(String phoneNumber, String message) {
  String SENT_SMS_ACTION="SENT_SMS_ACTION";
  String DELIVERED_SMS_ACTION = "DELIVERED_SMS_ACTION";  
  sendIntent = new Intent(SENT_SMS_ACTION);
  deliverIntent = new Intent(DELIVERED_SMS_ACTION);  
  //返回发送的状态
    sentPI = PendingIntent.getBroadcast(this, 0, sendIntent,  
                 0);  
         this.registerReceiver(new BroadcastReceiver() {  
             @Override  
             public void onReceive(Context _context, Intent _intent) {  
                 switch (getResultCode()) {  
                 case Activity.RESULT_OK:  
                     Toast.makeText(MainActivity.this,  
                 "短信发送成功", Toast.LENGTH_SHORT)  
                 .show();  
                     editPhone.setText("");
                     editMessage.setText("");
                 break;  
                 case SmsManager.RESULT_ERROR_GENERIC_FAILURE:  
                 break;  
                 case SmsManager.RESULT_ERROR_RADIO_OFF:  
                 break;  
                 case SmsManager.RESULT_ERROR_NULL_PDU:  
                 break;  
                 }  
             }  
         }, new IntentFilter(SENT_SMS_ACTION)); 
         
         //返回接收的状态
         deliverPI = PendingIntent.getBroadcast(this, 0,  
                 deliverIntent, 0);  
          this.registerReceiver(new BroadcastReceiver() {  
             @Override  
             public void onReceive(Context _context, Intent _intent) {  
                 Toast.makeText(MainActivity.this,  
            "收信人已经成功接收", Toast.LENGTH_SHORT)  
            .show();  
             }  
          }, new IntentFilter(DELIVERED_SMS_ACTION));  
  
  //发送短信
  SmsManager smsManager =SmsManager.getDefault();
  ArrayList<String> divideMessage = smsManager.divideMessage(message);
  for(String text:divideMessage){
   smsManager.sendTextMessage(phoneNumber, null, text, sentPI, deliverPI);
  }
 }

这样就好了,最后不要忘记了在清单文件中配置短信的权限

<uses-permission android:name="android.permission.SEND_SMS" />

《Android发送短信.doc》

下载本文的Word格式文档,以方便收藏与打印。