在Android 9.0中无法获得用户拨打的号码 即使我也在运行时声明了读取通话记录和REad电话状态权限



在我的应用程序中,我试图拦截所有以 00 字符串开头的传出呼叫。我使用电话管理器来获取传出号码,然后拦截它。在Android 9.0之前,所有代码都可以正常工作。但是在 Android Pie 中,一旦我拨打了电话,我的应用程序就会崩溃,因为我在接收器中没有得到用户拨打的号码。

"但是,未经READ_CALL_LOG许可,电话号码字段 在PHONE_STATE_CHANGED广播和通过 PhoneStateListener 为空。

因此,在您尝试访问任何拨打的号码之前,您必须确保用户授予读取电话号码的权限。 此外,您还必须保留检查和备份计划,以防用户拒绝许可。你的应用应该很好地处理这种情况,以避免任何空指针。

最新更新