Android 如何拦截及处理垃圾短信? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Lax02s
V2EX    Android

Android 如何拦截及处理垃圾短信?

  •  
  •   Lax02s 2023-09-13 08:17:55 +08:00 13482 次点击
    这是一个创建于 836 天前的主题,其中的信息可能已经有所发展或是发生改变。
    类原生系统。

    如果要结合 Tasker 写一个 Android 12 、13 系统垃圾短信拦截工具:

    1 、结合 Tasker 用 Javascript 代码实现;
    2 、Android 系统提供了垃圾短信处理的接口吗?
    识别如“退订”、“红包”等关键词后,将短信移到垃圾箱。

    “将短信移到垃圾箱”功能需要用到哪些 Android 系统接口?
    20 条回复    2023-09-22 13:58:36 +08:00
    TenProX
        1
    TenProX  
       2023-09-13 08:25:51 +08:00 via iPhone
    原生系统好像有自带的拦截功能哇。信息设置里面可以调。
    airbotgo
        2
    airbotgo  
       2023-09-13 08:39:39 +08:00
    @TenProX 自带的跟“没有”没什么区别。不提供关键词设置和拦截,垃圾短信畅行无阻。
    TenProX
        3
    TenProX  
       2023-09-13 08:40:52 +08:00 via iPhone
    无视就好了。即使你用了短信拦截,它还是一样会出现在你的收件箱。只不过是分组了而已。
    cxtrinityy
        4
    cxtrinityy  
       2023-09-13 09:24:19 +08:00 via Android
    原生垃圾拦截也没有那么好用,虽然没看 API ,不过我估计也就是在短信数据库设了个标识,系统本身应该没有 API ,需要短信应用自己处理,甚至可能全都是短信应用这边处理的
    我觉得体验最好的可能是 hook 吧,以前用 xposed 的时候研究过一阵子
    nekoyaki
        6
    nekoyaki  
       2023-09-13 10:09:19 +08:00
    我之前也找了好多方案或者 APP ,基本都不太行,各自有各自的问题。主要的障碍是安卓的新版本,只有默认短信 APP 才能写短信库。其他的 APP 即使能读取,也没有办法写入。以前可以装一些 xposed 插件实现外挂短信拦截,现在也懒得搞了。
    现在用“短信精灵”当默认短信 APP ,界面相对比较干净,可以设置一大堆关键词,被屏蔽的短信会进入单独的一个归档而不会直接消失,万一有什么误杀也有机会看到。可以按需设置提醒或者不提醒,我现在姑且就这么用着了。
    zictos
        7
    zictos  
       2023-09-13 10:18:11 +08:00
    直接操作 mmssms.db 短信数据库文件,sqlite 数据库。

    tasker 好像没找到可以删除短信的功能,chatgpt 提供的删除短信的命令是(没测试过):
    adb shell content delete --uri content://sms --where "_id=短信的 ID"
    不过自己直接操作数据库其实也挺方便的。你可以将垃圾短信都写入到一个文件中,然后删除它。
    ShadowPower
        8
    ShadowPower  
       2023-09-13 10:19:26 +08:00
    很久以前( Android 4.x 时代)的安卓可以允许第三方 APP 直接读写短信,那时候有一些第三方短信拦截工具。
    如今的 Android 只允许短信 APP 读写短信了(这方面比 iOS 还要封闭),但默认短信 APP 可以更换。
    所以只有使用第三方短信 APP 才可能拦截短信……因此,你可以自己写一个自带拦截功能的短信 APP 。

    或者用 xposed 来 hook 系统的短信 APP 。
    mscsky
        9
    mscsky  
       2023-09-13 10:44:10 +08:00
    用 QKSMS 就好了,不要造轮子了
    nhYc821d9om0ArHG
        10
    nhYc821d9om0ArHG  
       2023-09-13 13:44:52 +08:00
    miui 有关键词黑白名单的
    noahhhh
        11
    noahhhh  
       2023-09-13 13:55:28 +08:00 via Android
    1.买个通知滤盒
    2.装国内短信移植版,Android 应该是靠默认短信 app 处理垃圾短信的
    SenLief
        12
    SenLief  
       2023-09-13 16:07:23 +08:00 via iPhone
    我是直接用通知滤盒一类的工具,让它已读不提醒。
    guanzhangzhang
        13
    guanzhangzhang  
       2023-09-13 17:45:53 +08:00

    关键字黑名单:
    退订
    凭此短信
    填写问卷
    回 T 取关
    返现红包
    点击提现
    福利待领取
    转发无效
    白名单关键字:
    余额为
    lisxour
        14
    lisxour  
       2023-09-13 18:04:11 +08:00
    @airbotgo 这应该看系统吧,关键字拦截好多都有啊
    Yzh361
        15
    Yzh361  
       2023-09-13 19:14:02 +08:00 via Android
    NekoSMS
    正则表达式 匹配内容关键字、或者发送者
    realpg
        16
    realpg  
    PRO
       2023-09-13 19:42:06 +08:00
    用 ADUI 无此烦恼 甚至不用配置
    zachary99
        17
    zachary99  
       2023-09-13 19:45:29 +08:00 via Android
    国内 UI 的拦截已经够用了,已标记的都过滤,自定义一些关键字拦截,我现在根本看不到广告短信
    luzonglinnnn
        18
    luzonglinnnn  
       2023-09-14 09:33:20 +08:00
    通知滤盒
    chinni
        19
    chinni  
       2023-09-14 19:02:37 +08:00 via Android
    已经无所谓了…没怎么看过短信了…验证码要发前打开等着看下就结束了…其他批量全部删除就行了
    bush911
        20
    bush911  
       2023-09-22 13:58:36 +08:00
    @zictos 我在用这个 tasker 任务删除短信,供参考:

    <TaskerData sr="" dvi="1" tv="6.1.32">
    <Task sr="task113">
    <cdate>1594959102332</cdate>
    <edate>1695362269091</edate>
    <id>113</id>
    <nme>SMS Delete</nme>
    <pri>100</pri>
    <Action sr="act0" ve="7">
    <code>547</code>
    <Str sr="arg0" ve="3">%sms</Str>
    <Str sr="arg1" ve="3">%SMSRF</Str>
    <Int sr="arg2" val="0"/>
    <Int sr="arg3" val="0"/>
    <Int sr="arg4" val="0"/>
    <Int sr="arg5" val="3"/>
    <Int sr="arg6" val="0"/>
    </Action>
    <Action sr="act1" ve="7">
    <code>667</code>
    <label>gets ID of latest sms received.</label>
    <Int sr="arg0" val="2"/>
    <Str sr="arg1" ve="3">content://sms</Str>
    <Int sr="arg10" val="1"/>
    <Str sr="arg2" ve="3"/>
    <Str sr="arg3" ve="3">_id</Str>
    <Str sr="arg4" ve="3">address = ?</Str>
    <Str sr="arg5" ve="3">%sms</Str>
    <Str sr="arg6" ve="3">date DESC limit 1</Str>
    <Str sr="arg7" ve="3"/>
    <Str sr="arg8" ve="3">%sms_id</Str>
    <Int sr="arg9" val="0"/>
    </Action>
    <Action sr="act2" ve="7">
    <code>137</code>
    <label>stop if get ID failed.</label>
    <Int sr="arg0" val="0"/>
    <Str sr="arg1" ve="3"/>
    <ConditionList sr="if">
    <Condition sr="c0" ve="3">
    <lhs>%sms_id1</lhs>
    <op>13</op>
    <rhs>0</rhs>
    </Condition>
    </ConditionList>
    </Action>
    <Action sr="act3" ve="7">
    <code>664</code>
    <label>I assume this action take the SMS ID from URI and parse it for use in the future?</label>
    <Str sr="arg0" ve="3">uri</Str>
    <Str sr="arg1" ve="3">Uri</Str>
    <Str sr="arg2" ve="3">parse
    {Uri} (String)</Str>
    <Str sr="arg3" ve="3">content://sms/%sms_id1</Str>
    <Str sr="arg4" ve="3"/>
    <Str sr="arg5" ve="3"/>
    <Str sr="arg6" ve="3"/>
    <Str sr="arg7" ve="3"/>
    <Str sr="arg8" ve="3"/>
    <Str sr="arg9" ve="3"/>
    </Action>
    <Action sr="act4" ve="7">
    <code>664</code>
    <label>I think this action gets the content from the parsed URI?</label>
    <Str sr="arg0" ve="3">cr</Str>
    <Str sr="arg1" ve="3">CONTEXT</Str>
    <Str sr="arg2" ve="3">getContentResolver
    {ContentResolver} ()</Str>
    <Str sr="arg3" ve="3"/>
    <Str sr="arg4" ve="3"/>
    <Str sr="arg5" ve="3"/>
    <Str sr="arg6" ve="3"/>
    <Str sr="arg7" ve="3"/>
    <Str sr="arg8" ve="3"/>
    <Str sr="arg9" ve="3"/>
    </Action>
    <Action sr="act5" ve="7">
    <code>664</code>
    <label>And this action is most likely the action that delete the SMS in the parsed URI.</label>
    <Str sr="arg0" ve="3"/>
    <Str sr="arg1" ve="3">cr</Str>
    <Str sr="arg2" ve="3">delete
    {int} (Uri, String, String[])</Str>
    <Str sr="arg3" ve="3">uri</Str>
    <Str sr="arg4" ve="3"/>
    <Str sr="arg5" ve="3"/>
    <Str sr="arg6" ve="3"/>
    <Str sr="arg7" ve="3"/>
    <Str sr="arg8" ve="3"/>
    <Str sr="arg9" ve="3"/>
    </Action>
    </Task>
    </TaskerData>
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2598 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 05:17 PVG 13:17 LAX 21:17 JFK 00:17
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86