在 Android 中,可以通过实现BroadcastReceiver
来监听短信的发送。下面是一个示例代码:
public class SMSReceiver extends BroadcastReceiver {
private static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(SMS_RECEIVED)) {
Bundle bundle = intent.getExtras();
if (bundle != null) {
Object[] pdus = (Object[]) bundle.get("pdus");
if (pdus != null) {
for (Object pdu : pdus) {
SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) pdu);
String messageBody = smsMessage.getMessageBody();
String sender = smsMessage.getOriginatingAddress();
// 在这里处理短信信息
Log.d("SMSReceiver", "Received SMS: " + messageBody + " from " + sender);
}
}
}
}
}
}
然后,在你的 AndroidManifest.xml 文件中添加以下代码以注册广播接收器:
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<application>
<receiver android:name=".SMSReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
</application>
这样当收到短信时,SMSReceiver
的onReceive
方法将会被触发,你可以在这里对短信进行处理。注意,你需要在 AndroidManifest.xml 中添加RECEIVE_SMS
权限来接收短信。
在 Android 中,可以使用 BroadcastReceiver 来监听并接收短信。以下是一个使用 BroadcastReceiver 监听短信的示例:
首先,在 AndroidManifest.xml 文件中声明接收短信的权限和广播接收器:
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<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) {
if (intent.getAction().equals(Telephony.Sms.Intents.SMS_RECEIVED_ACTION)) {
Bundle bundle = intent.getExtras();
if (bundle != null) {
Object[] pdus = (Object[]) bundle.get("pdus");
if (pdus != null) {
for (Object pdu : pdus) {
SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) pdu);
String messageBody = smsMessage.getMessageBody();
String sender = smsMessage.getOriginatingAddress();
Log.d(TAG, "Received SMS: " + messageBody + ", from: " + sender);
// 在这里可以进行短信内容的处理逻辑
}
}
}
}
}
}
在上述代码中,可以通过 SmsMessage
获取短信的内容和发送者的电话号码。你可以根据需求,在 onReceive
方法中添加处理逻辑,例如发送短信到服务器、显示通知等。
注意,因为程序需要监听短信,必须在用户手机上动态获取 RECEIVE_SMS 权限。可以在 Android 6.0 及以上版本中使用运行时权限来动态请求该权限。
发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/142878.html