来电拦截方案

最近接了很多垃圾电话,分享一下我的拦截方案。

首先我有一个主号,这是很多年前办的,银行、房贷等重要信息的电话,都是用的这个,不能换,但是由于办理时间长,很多垃圾电话和短信。 其次我有一个小号,所有的快递、外卖等电话,都是用这个小号。

最近由于同小区其它楼房开始交房,我的电话简直快要被装修广告打爆了,日常被打断工作,再加上平时的信用卡要我分期, 问我要不要贷款,运营商套路我是否要升级套餐,我决定要把它们干掉。市面上找了几个软件,但是效果都不是很好,比如放歌会被打断。 所以自己写一个。

经与同事论证,现在的手机电话号码,大都是广告骚扰,真正有用的联系:

  • 亲人,大部分都在微信,或者已经加了联系人
  • 外卖、快递。可以用一个小号,然后把小号加到联系人
  • 面试等有用的第三方,同样把电话填成小号即可,小号加到联系人

总之,真正重要的电话,肯定会再次联系,或者发短信,或者微信,或者其它方式联系,又或者,短时间内再打一次。

所以,根据上面的特征,就可以自己搞一个规则出来:

  • 在通讯录内,放行
  • 不在通讯录内:
    • 如果上次拨打是在15分钟以内,放行
    • 否则,拒绝

然后就是App的开发了,要有这些功能:

  • 上述处理逻辑
  • 启动Service
  • 几个设置开关以及对应逻辑,开关service,是否在拒接后显示一条静默通知
  • 导入联系人,处理各式各样的号码存储方式

差不多就这些。

这个软件实现后,我的世界安静了。不得不感叹一句,会编程真好 :)

垃圾短信解决方案

最后,再提一句垃圾短信的拦截方案,其实用不着那些什么AI啊之类的,直接加一堆关键字(关键字黑名单配合关键字白名单),基本上就拦截干净了。


2020.12.25 更新:

之前我理解错了,小号也是使用来电转接,而来电转接,API获取的是来电者的号码而不是小号的号码,Call.Details 也没有办法 判断是哪个SIM卡来的电话号码,所以只能统一实现不在通讯录内,就挂掉。不过,我加上了多少时间内二次来电,就放行的逻辑,所以 其实还好。另外,如果是跳槽等,知道将会有很多陌生人来电的情况下,就可以把软件关掉,把 “运行” 那里关掉即可。

截图如下:

Call Screening


更多文章
  • 记一次Golang TLS编程踩坑
  • 杂谈
  • 使用autossh实现内网穿透
  • Linux线程内存模型
  • 关闭手机通知,修复碎片化的生活
  • Linux下系统调用的过程
  • 耍耍OverlayFS
  • Redis 5.0 Stream简明教程
  • 删除分区表
  • Docker组件介绍(二):shim, docker-init和docker-proxy
  • YouCompleteMe ycmd server SHUTDOWN 和 pyenv的问题
  • Docker组件介绍(一):runc和containerd
  • Prometheus MySQL Exporter源码阅读与分析
  • MySQL性能指标
  • 使用Dropbox来备份服务器文件