在 Android 中,可以通过 BroadcastReceiver 来监听短信接收事件,并获取短信的内容。具体实现步骤如下:
- 创建一个继承 BroadcastReceiver 的类,并重写 onReceive 方法。该方法会在接收到短信时被调用。
- 在 onReceive 方法中,通过 intent.getExtras() 方法获取短信相关的信息。其中,包括短信的 Sender(发件人)和 Message(短信内容)等信息。
- 在获取到短信的内容后,可以根据需要进行处理,比如展示在界面上、存储到本地等等。
以下是一份示例代码,可以帮助你更好地理解如何监听短信接收事件:
public class SmsReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// 获取短信相关的信息
Bundle bundle = intent.getExtras();
if (bundle == null) {
return;
}
// 获取短信内容和发件人信息
Object[] pdus = (Object[]) bundle.get("pdus");
if (pdus == null || pdus.length <= 0) {
return;
}
StringBuilder message = new StringBuilder();
String sender = "";
for (Object pdu : pdus) {
SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) pdu);
sender = smsMessage.getDisplayOriginatingAddress();
message.append(smsMessage.getMessageBody());
}
// 处理短信内容,比如显示在界面上
Toast.makeText(context, "收到一条短信:n" + sender + "n" + message, Toast.LENGTH_SHORT).show();
}
}
在 AndroidManifest.xml 中,需要注册该 BroadcastReceiver:
<receiver
android:name=".SmsReceiver"
android:priority="1000">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
注意,注册时需要添加一个 action,即 android.provider.Telephony.SMS_RECEIVED,这样才能监听到短信接收事件。
在 Android 中,可以通过BroadcastReceiver实现监听短信接收的内容:
- 首先,需要在AndroidManifest.xml中注册接收器:
<receiver android:name=".SmsReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
- 实现BroadcastReceiver:
public class SmsReceiver extends BroadcastReceiver {
private static final String TAG = "SmsReceiver";
@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 message = SmsMessage.createFromPdu((byte[]) pdu);
String address = message.getOriginatingAddress();
String body = message.getMessageBody();
Log.d(TAG, "SMS received from " + address + ", body: " + body);
}
}
}
}
在接收到短信时,会打印出短信的发送方地址和内容。
注意,需要获取短信接收的权限:
<uses-permission android:name="android.permission.RECEIVE_SMS" />
发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/158848.html