【问题标题】:Intercepting incoming calls on Android在 Android 上拦截来电
【发布时间】:2017-02-13 22:33:06
【问题描述】:

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

当前的 (Android 7 "Nougat") API 是否可以做到这一点?

注意事项:

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

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

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

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

  • 我的手机没有root。

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

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

谢谢。

【问题讨论】:

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


    【解决方案1】:

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

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

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

    深入到BlockedNumberContract

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多