来电拦截方案

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

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

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

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

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

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

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

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

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

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

差不多就这些。

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

垃圾短信解决方案

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


2020.12.25 更新:

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

截图如下:

Call Screening


微信公众号
关注公众号,获得及时更新

更多文章
  • 从GORM里学习到的panic处理方式
  • Go使用闭包简化数据库操作代码
  • TCMalloc设计文档学习
  • Flask和requests做一个简单的请求代理
  • Linux常用命令(四):xargs
  • Linux常用命令(二):htop
  • Linux常用命令(三):watch
  • Linux常用命令(一):netcat
  • 结合Flask 与 marshmallow快速进行参数校验
  • 规整数据的重要性
  • apt安装特定包以及忽略升级某个包
  • Goroutine是如何处理栈的?
  • StackGuard的作用
  • Go DiskQueue源码阅读
  • NSQ源码分析