在Android中,可以使用SmsManager类发送长短信。需要获取SmsManager实例,然后设置收件人、内容和发送模式。调用sendTextMessage方法发送短信。
在Android中,发送长短信和普通短信的方法基本相同,以下是详细的步骤:
1、添加权限
在AndroidManifest.xml文件中添加以下权限:
<usespermission android:name="android.permission.SEND_SMS" />
2、创建发送短信的方法
创建一个方法,用于发送短信,这个方法需要接收三个参数:收件人手机号码、短信内容和短信类型(普通短信或长短信)。
public void sendMessage(String phoneNumber, String message, int messageType) { // 检查是否已经获取了发送短信的权限 if (checkPermission()) { // 创建Intent对象,用于发送短信 Intent intent = new Intent(Intent.ACTION_VIEW); if (messageType == 1) { // 长短信 intent.putExtra("android.intent.extra.MAX_LENGTH", 140); // 设置最大长度为140字符 intent.putExtra("android.intent.extra.SUBJECT", "长短信"); // 设置短信主题 } else { // 普通短信 intent.putExtra("android.intent.extra.TEXT", message); // 设置短信内容 } intent.setData(Uri.parse("smsto:" + phoneNumber)); // 设置收件人手机号码 startActivity(intent); // 启动发送短信的界面 } else { // 如果没有获取到权限,提示用户去设置页面开启权限 requestPermission(); } }
3、检查权限并请求权限
private boolean checkPermission() { return ContextCompat.checkSelfPermission(this, Manifest.permission.SEND_SMS) == PackageManager.PERMISSION_GRANTED; } private void requestPermission() { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.SEND_SMS}, PERMISSION_REQUEST_CODE); }
4、处理权限请求结果
在onRequestPermissionsResult方法中处理权限请求结果,如果用户同意授权,调用sendMessage方法发送短信;如果用户拒绝授权,提示用户去设置页面开启权限。
@Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if (requestCode == PERMISSION_REQUEST_CODE) { if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { // 用户同意授权,发送短信 sendMessage("1234567890", "这是一条测试短信", 0); // 替换为实际的手机号码和短信内容 } else { // 用户拒绝授权,提示用户去设置页面开启权限 Toast.makeText(this, "请开启发送短信的权限", Toast.LENGTH_SHORT).show(); } } }