从 PHONE_STATE 意向操作读取号码 android 9 不起作用

2023-12-25

我试图通过 onrecieve() 方法从清单文件中注册的以下广播接收器的意图额外检索电话号码。

  <intent-filter>
            <action android:name="android.intent.action.PHONE_STATE" />
            <action android:name="android.intent.action.NEW_OUTGOING_CALL" />
        </intent-filter>

我可以成功读取除 Pixel 2 设备中升级的 Android Pie 之外的所有版本的电话号码。根据文档 https://developer.android.com/about/versions/pie/android-9.0-changes-all,应用程序需要额外的权限来读取电话号码,即 READ_CALL_LOG 权限和 READ_PHONE_STATE 权限,但即使在允许这些权限之后,我仍然缺少 READ_CALL_LOG 权限,因此我无法读取电话号码。请帮助我解决这个问题。


确保您在 Android 6.0+ 中在运行时授予 READ_PHONE_STATE 和 READ_CALL_LOG 权限:
https://developer.android.com/distribute/best-practices/develop/runtime-permissions https://developer.android.com/distribute/best-practices/develop/runtime-permissions

另外,请注意,授予这两个权限后,您将收到两次 ACTION_PHONE_STATE_CHANGED 广播意图操作;一个中的 EXTRA_INCOMING_NUMBER 填充了电话号码,另一个则为空。

您可以在这里找到更多信息:
https://developer.android.com/reference/android/telephony/TelephonyManager.html#ACTION_PHONE_STATE_CHANGED https://developer.android.com/reference/android/telephony/TelephonyManager.html#ACTION_PHONE_STATE_CHANGED

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 PHONE_STATE 意向操作读取号码 android 9 不起作用 的相关文章

随机推荐