2

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

当前的(Android 7“Nougat”)API 可以做到这一点吗?

笔记:

  • 很难得到明确的答案,因为在 2012 年,Android 2.3 (Gingerbread) 删除了一些与修改手机状态相关的重要 API,请参见此处。然而,Android 7(“Nougat”)似乎支持调用阻塞(见这里),所以我希望当前的 API 支持拦截调用。

  • 我不想按照这里的建议将呼叫转发到某些服务器。

  • 我更愿意自己编写软件,而不是安装像 Hiya 这样的应用程序。

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

  • 我的手机没有root。

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

  • 我之前在这里问过一个关于 iPhone 的类似问题。

谢谢。

4

1 回答 1

2

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

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

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

深入到BlockedNumberContract

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

因此,如果您是默认拨号器或默认 SMS 应用程序,您应该有权访问。如果您不是其中任何一个,那么任何应用程序所能做的就是确定该功能是否可用。

此外,我不知道将音频注入呼叫的一般方法,请参阅:Android 上的呼叫流修改

于 2017-02-13T22:59:18.073 回答