Android 找不到UID 10208的持久权限授予[安全异常]

Android 找不到UID 10208的持久权限授予[安全异常],android,android-permissions,securityexception,storage-access-framework,imagepicker,Android,Android Permissions,Securityexception,Storage Access Framework,Imagepicker,我正在应用程序中使用Storage Access Framework for Image Picker。下面是代码 val types = arrayOf("image/png", "image/jpeg", "image/jpg") val intent = Intents.createDocumentIntent(types, true) if (canDeviceHandle(intent)) caller.startActivi

我正在应用程序中使用Storage Access Framework for Image Picker。下面是代码

val types = arrayOf("image/png", "image/jpeg", "image/jpg")
val intent = Intents.createDocumentIntent(types, true)
if (canDeviceHandle(intent)) caller.startActivityForResult(intent, OPEN_GALLERY)
以下是创建文档的意图

 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)
        }
    }
在onActivityResult中

我读过很多关于这个崩溃的解决方案,比如添加persistable(FLAG\u GRANT\u persistable\u URI\u PERMISSION)FLAG或添加takePersistableUriPermission,但我已经有了这个解决方案,但我仍然遇到了这个崩溃。到目前为止,我还没有找到任何解决方案,我的应用程序用户也在我的手机上面临这个问题,我自己也无法复制

另请注意:我正在使用目标版本->11

替换:

val flags=data.flags和Intent.FLAG\授予\读取\ URI\权限
与:

val flags=Intent.FLAG\授予\读取\ URI\权限

您传递给
takePersistableUriPermission()
的唯一值是
FLAG\u GRANT\u READ\u URI\u PERMISSION
FLAG\u GRANT\u WRITE\u URI\u PERMISSION
,并且您不知道
数据中包含什么。flags
我仍然收到此崩溃。我已从代码中删除data.flags@通过一次选择约540张图像,我可以重现这次崩溃。我读到在获取持久权限时有128 | 512张图像的限制。@FiXiT:Ah!是的,如果您选择了那么多图像,这很可能是您的问题的根源。这一限制是不可改变的,至少对现有版本的Android来说是如此,尽管人们总是希望他们在未来版本的Android中提高这一限制。不过,很可能总会有一些限制。还要注意的是,AFAIK的限制是每个应用程序,而不是每个
ACTION\u OPEN\u DOCUMENT
call——两个
ACTION\u OPEN\u DOCUMENT
调用一次大约270个图像,在第二批中,或者在具有128
Uri
限制的设备上,第一批应该会给出类似的结果。@FiXiT:用于少量文档,而不是用于图库或类似内容的图像。而且,由于您正在处理图像,您可能会考虑切换到查询<代码> MistaSTORE < /COD>并呈现自己的库UI。
    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)
    }
 activity.contentResolver.takePersistableUriPermission(it, flags)