免责声明

易百易数码科技

android 创建短信_Android

文章目录


在Android中创建短信,可以使用SmsManager类。首先获取SmsManager实例,然后调用sendTextMessage方法发送短信。

Android 创建短信

在 Android 应用中,我们可以使用短信 API 来发送和接收短信,本文将介绍如何在 Android 应用中创建短信。

android 创建短信_Android-图1

准备工作

1、添加权限:在 AndroidManifest.xml 文件中添加以下权限:

<usespermission android:name="android.permission.SEND_SMS" />

2、获取短信管理器:通过 Context 对象获取短信管理器的实例。

SmsManager smsManager = SmsManager.getDefault();

3、设置发送短信所需的参数:包括目标号码、短信内容等。

String phoneNumber = "1234567890"; // 目标号码
String message = "Hello, this is a test message!"; // 短信内容

创建短信

1、创建 PendingIntent:用于指定短信发送后的操作,例如显示通知或启动活动。

Intent intent = new Intent(context, SmsSentReceiver.class);
PendingIntent sentPI = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);

2、创建 SMS 消息对象:包含目标号码、短信内容和 PendingIntent。

SmsMessage smsMessage = SmsMessage.createFromPdu(byte[] data, null);
smsMessage.setAddress(phoneNumber);
smsMessage.setBody(message);
smsMessage.setPortAddress(portAddress); // 如果需要设置端口地址,否则可以省略此行代码
smsMessage.setPendingIntent(sentPI); // 设置 PendingIntent

3、发送短信:调用短信管理器的 sendTextMessage() 方法发送短信。

smsManager.sendTextMessage(phoneNumber, null, message, sentPI, null);

接收短信

1、创建一个广播接收器类(SmsReceiver)继承自 BroadcastReceiver,并重写 onReceive() 方法来处理接收到的短信。

android 创建短信_Android-图2

2、在 AndroidManifest.xml 文件中注册广播接收器。

<receiver android:name=".SmsReceiver">
    <intentfilter>
        <action android:name="android.provider.Telephony.SMS_RECEIVED" />
    </intentfilter>
</receiver>

3、在 onReceive() 方法中获取接收到的短信,并进行相应的处理。

Bundle bundle = intent.getExtras();        //获取短信内容的对象       
        Object[] pdus = (Object[]) bundle.get("pdus");   //获取数组对象       
        for (int i = 0; i < pdus.length; i++) {   //遍历数组           
            SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdus[i]);     //创建短信对象           
            String phoneNumber = currentMessage.getDisplayOriginatingAddress();     //获取发件人号码           
            String senderId = currentMessage.getDisplayOriginatingAddress();     //获取发件人ID           
            String messageBody = currentMessage.getDisplayMessageBody();     //获取短信内容           
            //在这里进行相应的处理,例如显示通知或保存到数据库等操作。           
        }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         

相关问题与解答

问题1:如何设置短信的优先级?

解答:可以通过 setPriority() 方法设置短信的优先级,取值范围为 PRIORITY_HIGH、PRIORITY_LOW、PRIORITY_NORMAL,示例代码如下:

smsMessage.setPriority(SmsMessage.PRIORITY_HIGH); // 设置优先级为高优先级
android 创建短信_Android-图3
分享:
扫描分享到社交APP
上一篇
下一篇