在Android开发中,发送短信是一个常见的功能需求。通过编写相应的代码,开发者可以实现短信的发送。本文将详细介绍如何在Android中发送短信,并提供一段实用的代码示例。
一、短信发送原理

Android中发送短信主要依赖于SmsManager类。该类提供了发送短信的接口,开发者可以通过调用相关方法来实现短信的发送。
二、发送短信的步骤
获取SmsManager实例:首先,需要获取
SmsManager的实例,这可以通过调用SmsManager.getDefault()方法实现。设置短信内容:通过
SmsManager实例的sendTextMessage()方法发送短信,该方法需要传入短信的内容、接收者号码、发送者号码和发送时间等参数。权限处理:在Android 6.0(API级别23)及以上版本中,发送短信需要申请发送短信的权限。可以在AndroidManifest.xml文件中添加以下权限:
<uses-permission android:name="android.permission.SEND_SMS" />运行时权限请求:对于Android 6.0及以上版本,还需要在运行时请求发送短信的权限。
三、发送短信的代码示例
以下是一个发送短信的代码示例:
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage("接收者号码", null, "短信内容", null, null);
四、案例分析
假设我们需要发送一条包含特定内容的短信给指定号码,以下是一个完整的示例:
import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.telephony.SmsManager;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
public class SmsSendActivity extends AppCompatActivity {
private static final int SEND_SMS_PERMISSION_REQUEST_CODE = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sms_send);
if (ContextCompat.checkSelfPermission(this, Manifest.permission.SEND_SMS) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.SEND_SMS}, SEND_SMS_PERMISSION_REQUEST_CODE);
} else {
sendSms("接收者号码", "这是一条测试短信");
}
}
private void sendSms(String phoneNumber, String message) {
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(phoneNumber, null, message, null, null);
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == SEND_SMS_PERMISSION_REQUEST_CODE) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
sendSms("接收者号码", "这是一条测试短信");
} else {
// Permission denied, disable the functionality that depends on this permission.
}
}
}
}
通过以上代码,我们可以实现发送短信的功能。需要注意的是,在实际开发中,还需要根据具体需求对代码进行相应的调整。