我试图通过 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(使用前将#替换为@)