拦截Android上的来电

时间:2017-02-13 22:33:07

标签: android android-7.0-nougat android-7.1-nougat

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

当前(Android 7“Nougat”)API可以实现吗?

注意:

  • 很难得到一个明确的答案,因为在2012年,Android 2.3(Gingerbread)删除了一些与修改手机状态相关的重要API,请参阅here。但是,Android 7(“Nougat”)似乎支持呼叫阻止(请参阅here),因此我希望当前的API支持拦截呼叫。

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

  • 我更喜欢自己编写软件,而不是像Hiya那样安装应用程序。

  • 我有一个由我的运营商分配的常规电话号码(没有花哨的谷歌语音或VOIP的东西),我使用标准的“电话”应用程序。

  • 我的手机没有扎根。

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

  • 我之前曾对iPhone here提出类似问题。

感谢。

1 个答案:

答案 0 :(得分:1)

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

  

Android 7.0现在支持平台中的数字阻止,并提供框架API以允许服务提供商维护阻塞号码列表。默认的SMS应用程序,默认的手机应用程序和运营商应用程序可以读取和写入阻止号码列表。 其他应用无法访问该列表。

最后一行强调,这不是一般访问功能。

深入研究BlockedNumberContract

  

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

因此,如果您是默认的拨号程序或默认的SMS应用程序,您应该有权访问。如果您不是其中任何一个,那么任何应用程序都可以查看该功能是否可用。

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