如何解决找不到 UID 10208 的持久权限授予 [安全异常]
我在我的应用中使用了 Image Picker 的存储访问框架。下面是代码
False
这里是创建文档的意图
val types = arrayOf("image/png","image/jpeg","image/jpg")
val intent = Intents.createDocumentIntent(types,true)
if (canDeviceHandle(intent)) caller.startActivityForResult(intent,OPEN_GALLERY)
这是在 OnActivityResult
fun createDocumentIntent(types: Array<String>,allowedMultiple: Boolean): Intent {
return Intent(Intent.ACTION_OPEN_DOCUMENT).apply {
addCategory(Intent.CATEGORY_OPENABLE)
type = if (!types.isNullOrEmpty()) {
putExtra(Intent.EXTRA_MIME_TYPES,types)
types[0]
} else "*/*"
putExtra(Intent.EXTRA_ALLOW_MULTIPLE,allowedMultiple)
addFlags(Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION)
addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
}
}
我正在排队
private fun handleGalleryActivityResult(data: Intent?,callbacks: FilePicker.Callbacks) {
if (data == null) return
val files = mutableListOf<Uri>()
when {
data.clipData != null -> {
val clipData = data.clipData ?: return
(0 until clipData.itemCount).forEach { files.add(clipData.getItemAt(it).uri) }
}
data.data != null -> {
files.add(data.data!!)
}
else -> return
}
files.forEach {
val flags = data.flags and Intent.FLAG_GRANT_READ_URI_PERMISSION
activity.contentResolver.takePersistableUriPermission(it,flags)
}
callbacks.onFilesPicked(files)
}
在 onActivityResult 中。
我阅读了许多有关此崩溃的解决方案,例如添加持久性 (FLAG_GRANT_PERSISTABLE_URI_PERMISSION) 标志或添加 takePersistableUriPermission,但我已经有了这个,但我仍然遇到此崩溃。到目前为止,我找不到任何解决方案,我的应用用户也在我的手机上遇到了这个问题,我自己无法重现。
另外附注:我正在使用目标版本 -> 11
解决方法
替换:
val flags = data.flags and Intent.FLAG_GRANT_READ_URI_PERMISSION
与:
val flags = Intent.FLAG_GRANT_READ_URI_PERMISSION
您传递给 takePersistableUriPermission()
的唯一值是 FLAG_GRANT_READ_URI_PERMISSION
和 FLAG_GRANT_WRITE_URI_PERMISSION
,而您不知道 data.flags
中包含什么。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。