免责声明

易百易数码科技

android 短信操作_Android

文章目录


Android短信操作可以通过SmsManager类实现发送和接收短信,需要添加短信权限。

Android短信操作

发送短信

1、获取SmsManager对象:

android 短信操作_Android-图1
SmsManager smsManager = SmsManager.getDefault();

2、设置收件人号码和内容:

String phoneNumber = "接收方手机号码";
String message = "短信内容";

3、发送短信:

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

接收短信

1、注册广播接收器:

public class SmsReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Bundle bundle = intent.getExtras();
        if (bundle != null) {
            Object[] pdus = (Object[]) bundle.get("pdus");
            for (Object pdu : pdus) {
                SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) pdu);
                String senderPhoneNumber = smsMessage.getDisplayOriginatingAddress();
                String messageBody = smsMessage.getDisplayMessageBody();
                // 处理接收到的短信内容
            }
        }
    }
}

2、在AndroidManifest.xml中注册广播接收器:

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

3、动态注册广播接收器(需要在Activity中执行):

IntentFilter filter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");
registerReceiver(smsReceiver, filter);

4、取消注册广播接收器(需要在Activity中执行):

unregisterReceiver(smsReceiver);

常见问题与解答

问题1:如何发送彩信?

android 短信操作_Android-图2

答案:发送彩信需要使用MmsManager对象,具体步骤如下:

1、获取MmsManager对象:

MmsManager mmsManager = MmsManager.getDefault();

2、设置收件人、内容、文件路径等参数:

String phoneNumber = "接收方手机号码";
String subject = "彩信主题";
String body = "彩信内容";
Uri fileUri = Uri.parse("文件路径"); // 可以是图片、音频等文件的URI

3、发送彩信:

mmsManager.sendMultimediaMessage(phoneNumber, null, subject, body, new String[]{fileUri.toString()});

问题2:如何监听短信的读取状态?

答案:可以通过ContentObserver监听短信的读取状态,首先创建一个ContentObserver类,然后重写onChange方法,最后在需要监听的地方注册ContentObserver,以下是一个简单的示例:

1、创建ContentObserver类:

android 短信操作_Android-图3
public class SmsStatusObserver extends ContentObserver {
    public SmsStatusObserver(Handler handler) {
        super(handler);
    }
    @Override
    public void onChange(boolean selfChange) {
        super.onChange(selfChange);
        // 短信读取状态发生变化时的处理逻辑,例如更新UI等操作。
    }
}
分享:
扫描分享到社交APP
上一篇
下一篇