pppscn / SmsForwarder

短信转发器——监控Android手机短信、来电、APP通知,并根据指定规则转发到其他手机:钉钉群自定义机器人、钉钉企业内机器人、企业微信群机器人、飞书机器人、企业微信应用消息、邮箱、bark、webhook、Telegram机器人、Server酱、PushPlus、手机短信等。包括主动控制服务端与客户端,让你轻松远程发短信、查短信、查通话、查话簿、查电量等。(V3.0 新增)PS.这个APK主要是学习与自用,如有BUG请提ISSUE,同时欢迎大家提PR指正
BSD 2-Clause "Simplified" License
18.52k stars 2.46k forks source link

[Suggestion]: 多重匹配语法增加对 UID 的支持 #510

Closed updateing closed 3 months ago

updateing commented 3 months ago

是否有人曾提过类似的问题?

否(No)

你觉得APP有什么不足之处?

转发规则 - 应用 - 匹配字段 选择多重匹配时,无法指定使用 UID 匹配。希望能够添加这个匹配条件。

现象是,在选择多重匹配后,“匹配的值”中填写 并且 是 UID 相等 999 ,再点击测试或保存,均会提示“多重匹配规则的第 1 行格式有误”。

你觉得该怎么去完善会比较好?【非必答】

从代码上看,底层的匹配代码应该是支持 UID 的:

https://github.com/pppscn/SmsForwarder/blob/ff83a8a5f7ecfe8995b66991dc9fe8c8c02fc4e6/app/src/main/java/com/idormy/sms/forwarder/utils/RuleLine.kt#L62

UI 上检测多重匹配规则是否合法,只是通过一个预定义的正则表达式去检测:

https://github.com/pppscn/SmsForwarder/blob/ff83a8a5f7ecfe8995b66991dc9fe8c8c02fc4e6/app/src/main/java/com/idormy/sms/forwarder/fragment/RulesEditFragment.kt#L737-L752 https://github.com/pppscn/SmsForwarder/blob/ff83a8a5f7ecfe8995b66991dc9fe8c8c02fc4e6/app/src/main/res/values/strings.xml#L637

因此或许只需要简单修改这个正则表达式,把 UID 加进去就可以支持了。但是我目前没有开发环境,无法做这个测试。

pppscn commented 3 months ago

覆盖安装 每周构建版 试试 (等待在线编译完成)

升级操作提示:

updateing commented 3 months ago

测试可用。感谢!

另外留个记录:UID 不是 UserID. 如果要识别双开应用,条件应当是“以 999 开头”而不是“等于 999”。

pppscn commented 3 months ago

测试可用。感谢!

另外留个记录:UID 不是 UserID. 如果要识别双开应用,条件应当是“以 999 开头”而不是“等于 999”。

自定义模板插入这个标签 {{UID}} ,先转发全部通知出去,就知道你要的应用对应的uid是多少,然后修改转发规则,匹配字段选UID,匹配值添uid数字