国际短信,短信群发,营销短信,双向短信
业务消息跨越国界无阻碍

Android发送短信代码详解:轻松实现短信发送功能

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

一、短信发送原理

Android发送短信代码详解:轻松实现短信发送功能

Android中发送短信主要依赖于SmsManager类。该类提供了发送短信的接口,开发者可以通过调用相关方法来实现短信的发送。

二、发送短信的步骤

  1. 获取SmsManager实例:首先,需要获取SmsManager的实例,这可以通过调用SmsManager.getDefault()方法实现。

  2. 设置短信内容:通过SmsManager实例的sendTextMessage()方法发送短信,该方法需要传入短信的内容、接收者号码、发送者号码和发送时间等参数。

  3. 权限处理:在Android 6.0(API级别23)及以上版本中,发送短信需要申请发送短信的权限。可以在AndroidManifest.xml文件中添加以下权限:

    <uses-permission android:name="android.permission.SEND_SMS" />
    
  4. 运行时权限请求:对于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.
            }
        }
    }
}

通过以上代码,我们可以实现发送短信的功能。需要注意的是,在实际开发中,还需要根据具体需求对代码进行相应的调整。