静态广播场景Android,Android BroadcastReceiver 接收收到短信的广播
时间: 2023-09-15 17:17:31 浏览: 149
可以通过在 AndroidManifest.xml 文件中声明一个 BroadcastReceiver 来接收短信广播。具体步骤如下:
1. 在 AndroidManifest.xml 文件中声明一个 BroadcastReceiver,如下所示:
```
<receiver android:name=".SmsReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
```
2. 创建一个 SmsReceiver 类,并重写 onReceive() 方法:
```
public class SmsReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")) {
// 处理收到短信的逻辑
}
}
}
```
3. 在 onReceive() 方法中,可以通过 intent.getExtras() 方法获取收到的短信信息,例如:
```
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();
// 处理短信内容和发送者信息
}
}
}
```
注意:在 AndroidManifest.xml 文件中声明 BroadcastReceiver 后,必须授予 RECEIVE_SMS 权限才能接收短信广播。在 Android 6.0 及以上版本中,还需要动态申请权限。
阅读全文