在Android中,截获短信需要使用广播接收器(BroadcastReceiver),以下是详细的步骤:
(图片来源网络,侵删)1、添加权限
在AndroidManifest.xml文件中,需要添加以下权限:
<usespermission android:name="android.permission.RECEIVE_SMS" /> <usespermission android:name="android.permission.READ_SMS" /> <usespermission android:name="android.permission.SEND_SMS" />
2、注册广播接收器
在AndroidManifest.xml文件中,注册一个广播接收器,用于接收短信:
<receiver android:name=".SmsReceiver"> <intentfilter> <action android:name="android.provider.Telephony.SMS_RECEIVED" /> </intentfilter> </receiver>
3、创建广播接收器类
创建一个名为SmsReceiver的类,继承自BroadcastReceiver,并重写onReceive方法:
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"); if (pdus != null) { for (Object pdu : pdus) { SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) pdu); String sender = smsMessage.getDisplayOriginatingAddress(); String messageBody = smsMessage.getDisplayMessageBody(); // 处理短信内容,例如显示在界面上或者保存到数据库等 } } } } }
4、获取短信内容
在SmsReceiver类的onReceive方法中,可以通过以下代码获取短信内容:
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 sender = smsMessage.getDisplayOriginatingAddress(); String messageBody = smsMessage.getDisplayMessageBody(); // 处理短信内容,例如显示在界面上或者保存到数据库等 } } }
5、处理短信内容
在获取到短信内容后,可以根据需求进行处理,例如显示在界面上或者保存到数据库等。
最新评论
本站CDN与莫名CDN同款、亚太CDN、速度还不错,值得推荐。
感谢推荐我们公司产品、有什么活动会第一时间公布!
我在用这类站群服务器、还可以. 用很多年了。