【发布时间】:2023-03-28 09:59:01
【问题描述】:
应用正在读取通话记录。在大多数设备上都很好,其他一些设备会得到SecurityException 用于READ_CONTACTS(我没有也不想在我的AndroidManifest.xml 中使用它。
为什么会这样,我可以对此做些什么吗?也许通过投影,不获取CACHED_NAME?
【问题讨论】:
标签: android android-securityexception
应用正在读取通话记录。在大多数设备上都很好,其他一些设备会得到SecurityException 用于READ_CONTACTS(我没有也不想在我的AndroidManifest.xml 中使用它。
为什么会这样,我可以对此做些什么吗?也许通过投影,不获取CACHED_NAME?
【问题讨论】:
标签: android android-securityexception
android.permission.READ_CALL_LOG 是在 API 级别 16 中引入的。在此之前,它隐含在 android.permission.READ_CONTACTS 中,并且不作为单独的权限存在。我怀疑您的问题出在 API 15 及更低版本的设备上,因为它们会忽略您的清单的 uses-permission 行 READ_CALL_LOG,因此无权读取日志。对于这些设备,READ_CONTACTS 是正确的权限。
【讨论】:
<uses-permission android:name="android.permission.READ_CONTACTS" android:maxSdkVersion="15" /> 来避免在较新的 API 中请求此权限。
READ_CONTACTS 权限。 READ_CALL_LOGS 是一个单独的权限。