Средство выбора фотографий Android 13 выдает FileNotFoundException
Я использовал средство выбора фотографий для получения фотографий и следую https://developer.android.com/training/data-storage/shared/photopicker . Мы видели сбой нескольких устройств ниже на устройствах Android 11 и выше.
Нефатальное исключение: java.io.FileNotFoundException: такого файла или каталога в android.database.DatabaseUtils.readExceptionWithFileNotFoundExceptionFromParcel(DatabaseUtils.java:156) нет.
// Fragment to get a photo uri.
val launcher = rememberLauncherForActivityResult(ActivityResultContracts.PickVisualMedia()) { uri ->
passToAdapter(uri)
}
Button(
choosePhoto = {
//On button press, launch the photo picker
launcher.launch(PickVisualMediaRequest(
//Here we request only photos. Change this to .ImageAndVideo if you want videos too.
//Or use .VideoOnly if you only want videos.
mediaType = ActivityResultContracts.PickVisualMedia.ImageOnly
))
}
)
Adapter:
// get application context .
val inputStream = context.contentResolver.openInputStream(uri) // crash at here.
Обратите внимание: я получаю доступ к этому URI в разных фрагментах/действиях, поэтому, если я использую класс приложения, я считаю, что это должно решить мою проблему.
Я подозреваю, что проблема связана с отсутствием строк ниже.
флаг val = Intent.FLAG_GRANT_READ_URI_PERMISSIONcontext.contentResolver.takePersistableUriPermission(uri, flag)