在 Android 中,您可以使用 SmsManager API 或设备内置的 SMS 应用程序来发送 SMS。 在本教程中,我们向您展示了发送 SMS 消息的两个基本示例 −
SmsManager API
内置短信应用
当然,两者都需要SEND_SMS 权限。
除了上述方法,SmsManager 类中还有一些其他重要的功能可用。 下面列出了这些方法 −
序号 |
方法 & 描述 |
1 |
ArrayList<String> divideMessage(String text) 此方法将消息文本分成几个片段,不大于最大 SMS 消息大小。 |
2 |
static SmsManager getDefault() 该方法用于获取 SmsManager 的默认实例 |
3 |
void sendDataMessage(String destinationAddress, String scAddress, short destinationPort, byte[] data, PendingIntent sentIntent, PendingIntent deliveryIntent) 此方法用于将基于数据的 SMS 发送到特定的应用程序端口。 |
4 |
void sendMultipartTextMessage(String destinationAddress, String scAddress, ArrayList<String> parts, ArrayList<PendingIntent> sentIntents, ArrayList<PendingIntent> deliveryIntents) 发送基于多部分文本的 SMS。 |
5 |
void sendTextMessage(String destinationAddress, String scAddress, String text, PendingIntent sentIntent, PendingIntent deliveryIntent) 发送基于文本的 SMS。 |
示例
以下示例向您展示了如何使用 SmsManager 对象向给定的手机号码发送短信。
要试验此示例,您需要配备最新 Android 操作系统的实际移动设备,否则您将不得不使用可能无法工作的模拟器。
步骤 |
描述 |
1 |
您将使用 Android Studio IDE 创建一个 Android 应用程序,并将其命名为 tutorialspoint,位于包 com.example.tutorialspoint 下。 |
2 |
修改 src/MainActivity.java 文件并添加所需的代码来处理发送短信。 |
3 |
修改布局 XML 文件 res/layout/activity_main.xml 添加任何 GUI 组件(如果需要)。 我正在添加一个简单的 GUI 来接收要发送的手机号码和 SMS 文本,以及一个简单的按钮来发送 SMS。 |
4 |
无需在 res/values/strings.xml 中定义默认字符串常量。 Android Studio 负责处理默认常量。 |
5 |
修改AndroidManifest.xml如下图 |
6 |
运行应用程序以启动 Android 模拟器并验证应用程序中所做更改的结果。 |
以下是修改后的主活动文件src/com.example.tutorialspoint/MainActivity.java的内容。