返回列表 发新帖

android 截获短信_Android

[复制链接]

9

主题

25

帖子

25

积分

新手上路

Rank: 1

积分
25
发表于 2024-10-19 10:17:51  | 显示全部楼层 | 阅读模式
在Android中,截获短信需要使用广播接收器(BroadcastReceiver),以下是详细的步骤:

zbhj1efx01apddv.jpg

zbhj1efx01apddv.jpg


(图片来源网络,侵删)
1、添加权限
在AndroidManifest.xml文件中,需要添加以下权限:




2、注册广播接收器
在AndroidManifest.xml文件中,注册一个广播接收器,用于接收短信:

   
        
   


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、处理短信内容
在获取到短信内容后,可以根据需求进行处理,例如显示在界面上或者保存到数据库等。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表