在我的应用程序中,我试图拦截所有以00字符串开头的传出呼叫。我使用Telephony Manager来获取传出号码,然后拦截它。所有代码在Android 9.0之前都正常运行。但是在Android Pie中,一旦我拨打电话,我的应用就崩溃了,因为我没有在Receiver中获得用户拨打号码。
“但是,如果没有READ_CALL_LOG权限,则PHONE_STATE_CHANGED广播和PhoneStateListener中提供的电话号码字段为空。”
因此,在尝试访问任何拨打的号码之前,您必须确保用户授予读取电话号码的权限。此外,您还必须保留支票和备用计划,以防用户拒绝许可。您的应用应该很好地处理这种情况,以避免任何空指针。