2017-02-13 112 views
1

我想为我的Android手机编写拦截来电并播放短音频片段的软件,指示来电者按“1”继续进行通话。这是为了打击电话推销员。在Android上拦截来电

这与目前的(Android 7“牛轧糖”)API可能吗?

注:

  • 这很难,因为在2012年,Android的2.3(姜饼)删除与修改手机状态一些重要的API来获取一个明确的答案,看here。但是,Android 7(“Nougat”)似乎支持呼叫阻止(请参阅here),所以我希望当前的API支持拦截呼叫。

  • 我不想按照建议here转发呼叫到某个服务器。

  • 我宁愿自己编写软件,也不安装Hiya这样的应用程序。

  • 我有一个由我的运营商指定的普通电话号码(没有花哨的Google语音或VOIP资料),我使用标准的“电话”应用。

  • 我的手机没有植根。

  • 这受到Jolly Roger Telephone Company反电话推销机器人的启发。

  • 我以前问过类似的问题iPhone的here

谢谢。

回答

1

具体的文档链接是 Android 7.0 - Number Blocking feature

的Android 7.0现在支持在平台阻塞数量和提供了一个框架,API,让服务供应商保持阻塞的号码列表。默认的短信应用程序,默认电话应用程序和运营商应用程序可以读取和写入阻止号码列表。 该列表不能被其他应用程序访问。

最后一行突出显示这不是一般访问功能。

向下钻取到BlockedNumberContract

只有系统中,默认的短信应用,默认手机应用程序(见getDefaultDialerPackage()),和运营商的应用程序(见CarrierService)可以读取和写入被阻止的数字提供者。但是,canCurrentUserBlockNumbers(Context)可以被任何应用程序访问。

所以,如果你是默认的拨号程序或默认的短信应用程序,你应该有权限访问。如果你不是其中的任何一个,那么所有的应用程序都可以做的是找出该功能是否可用。

此外,我不知道将音频注入呼叫的一般方法,请参阅:Call Stream Modification on Android