是否可以在Android中检测拨出电话的网络拒绝原因?
例如,让我们假设一个人没有信用并正在尝试打电话。在这种情况下,网络将拒绝该呼叫(因为此人没有信用)。应用程序如何检测到这一点?
谢谢!
答案 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 源链接,它们就在那里。
使用此方法的注意事项:
READ_PRECISE_PHONE_STATE
(应用程序必须作为系统应用程序安装) - 或其他一些使用 root 命令的技巧。