Android (安卓)发送短信
-
发送短信
在Android中,您可以使用SmsManager API或设备内置的SMS应用程序来发送SMS。在本教程中,我们向您展示了两个发送SMS消息的基本示例-SmsManager API内置短信应用当然,两者都需要SEND_SMS权限。除了上述方法外,SmsManager类中还有一些其他重要函数可用。这些方法在下面列出-函数 说明 ArrayList<String> divideMessage(String text) 此方法将消息文本分为几个片段,最大不超过最大<b>SMS</b>消息大小。 static SmsManager getDefault() 此方法用于获取SmsManager的默认实例 void sendDataMessage(String destinationAddress, String scAddress, short destinationPort, byte[] data, PendingIntent sentIntent, PendingIntent deliveryIntent) 此方法用于将基于数据的SMS发送到特定的应用程序端口。 void sendMultipartTextMessage(String destinationAddress, String scAddress, ArrayList<String> parts, ArrayList<PendingIntent> sentIntents, ArrayList<PendingIntent> deliveryIntents) 发送基于文本的多部分短信。 void sendTextMessage(String destinationAddress, String scAddress, String text, PendingIntent sentIntent, PendingIntent deliveryIntent) 发送基于文本的SMS。 -
发送短信示例
以下示例向您实际展示如何使用SmsManager对象将SMS发送到给定的手机号码。要尝试此示例,您将需要配备最新Android OS的实际移动设备,否则,您将不得不使用可能无法工作的仿真器。
- 您将使用Android Studio IDE创建一个Android应用程序,并在com.example.demo包下将其命名为Demo。
- 修改src/MainActivity.java文件并添加所需的代码以发送短信。
- 修改布局XML文件res/layout/activity_main.xml可添加任何GUI组件。我添加了一个简单的GUI来接收手机号码和SMS文本,以及一个简单的按钮来发送SMS。
- 如下所示修改 AndroidManifest.xml,以获得发送短信的权限。
- 运行该应用程序以启动Android模拟器并验证在该应用程序中所做更改的结果。
以下是修改后的主要活动文件src/com.jc2182.demo/MainActivity.java的内容。该文件可以包括每个基本生命周期方法。以下是res/layout/activity_main.xml文件的内容-以下是AndroidManifest.xml文件的内容-让我们尝试运行刚刚修改的应用程序。我假设您在进行环境设置时已创建了AVD。要从Android Studio运行该应用,请打开您项目的活动文件之一,然后工具栏中单击“运行”图标。Android studio将应用程序安装在您的AVD上并启动它,如果设置和应用程序一切正常,它将显示在“模拟器”窗口下面-现在,您可以输入所需的手机号码,并在该号码上发送短信。最后,点击发送短信按钮发送您的短信。确保您的GSM/CDMA连接正常,可以将SMS传送给接收者。您可以用逗号分隔多个SMS,然后在程序内部将它们解析为数组字符串,最后可以使用循环将消息发送给所有给定数字。这样便可以编写自己的SMS客户端。下一节将向您展示如何使用现有的SMS客户端发送SMS。 -
使用内置意图发送短信
您可以通过调用Android的内置SMS功能,使用Android Intent发送SMS。下一节说明了发送SMS所需的Intent对象的不同部分。意图对象-发送短信的动作您将使用 ACTION_VIEW 操作启动安装在Android设备上的SMS客户端。以下是使用 ACTION_VIEW 操作创建意图的简单语法。意图对象-发送短信的数据/类型要发送短信,您需要使用setData() 方法将smsto :指定为URI,并且使用setType() 方法将数据类型设置为vnd.android-dir/mms-sms,如下所示-意图对象-附加数据发送短信Android内置支持添加电话号码和短信以发送短信,如下所示:这里的address和sms_body区分大小写,并且只能以小写字母指定。您可以在单个字符串中指定多个数字,但以分号(;)分隔。
示例:::下面的示例向您实际展示如何使用Intent对象启动SMS客户端,以将SMS发送给给定的收件人。要尝试此示例,您将需要配备最新Android OS的实际移动设备,否则,您将不得不使用可能无法工作的仿真器。
- 您将使用Android Studio IDE创建一个Android应用程序,并在com.example.demo包下将其命名为Demo。
- 修改src/MainActivity.java文件并添加所需的代码以发送SMS。
- 修改布局XML文件res/layout/activity_main.xml可添加任何GUI组件。我添加了一个简单的按钮来启动SMS客户端。
- 如下所示修改 AndroidManifest.xml,以获得发送短信的权限。
- 运行该应用程序以启动Android模拟器并验证在该应用程序中所做更改的结果。
以下是修改后的主要活动文件src/com.jc2182.demo/MainActivity.java的内容。该文件可以包括每个基本生命周期方法。以下是res/layout/activity_main.xml文件的内容-以下是AndroidManifest.xml文件的内容-您可以在真实设备上测试此例!