在Android中检测拨出电话拒绝原因

时间:2014-10-13 16:07:47

标签: android

是否可以在Android中检测拨出电话的网络拒绝原因?

例如,让我们假设一个人没有信用并正在尝试打电话。在这种情况下,网络将拒绝该呼叫(因为此人没有信用)。应用程序如何检测到这一点?

谢谢!

1 个答案:

答案 0 :(得分:0)

“有点”晚了 xD,但我相信您正在寻找这个:https://android.googlesource.com/platform/frameworks/base/+/master/telephony/java/android/telephony/DisconnectCause.java。我只是在您对错误代码之一所说的帮助下找到了它:“网络正忙”--> 在 Google 上搜索“网络正忙站点:android.googlesource.com”,没有引号(这样说是因为它们很重要)在 Google 搜索中,以防有人不知道)。

那是 DisconnectCause 类,还有 PreciseDisconnectCause: https://android.googlesource.com/platform/frameworks/base/+/master/telephony/java/android/telephony/PreciseDisconnectCause.java。您可以知道最后一个,因为在第一个中,据说该类在 onCallDisconnectCauseChanged() 上的 PhoneStateListener 上使用(这可能是您想要的),而在 Android Developers 上,我们可以看到该方法有 2 个参数,即给 Android 开发者 404 错误。因此,我在 Google 上搜索了 .java 类文件以获取 Android 源链接,它们就在那里。

使用此方法的注意事项:

  • 它至少需要 API 30(可惜...);
  • 但更重要的是,它需要 READ_PRECISE_PHONE_STATE(应用程序必须作为系统应用程序安装) - 或其他一些使用 root 命令的技巧。