Я пытаюсь получить изображения как с камеры, так и из галереи, сделать с ними что-то еще, а затем сохранить исходный URI изображения в SharedPreferences.Я могу выбрать один из них и успешно отобразить их, но для изображений галереи, пока я не очистил память (закройте приложение из истории), я могу извлечь их из общих настроек и отобразить их в Imageview, но после закрытияприложение из истории, извлеченные URI больше не отображаются.
Я сохраняю URI следующим образом:
@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent data) {
if (requestCode == REQUEST_CAPTURE_IMAGE) {
if (resultCode == RESULT_OK) {
Uri imageUri = Uri.parse("file:" + photoFile.getAbsolutePath());
storeInPreferences(imageUri.toString());
} else Toast.makeText(this, "Canceled", Toast.LENGTH_SHORT).show();
}
else if (requestCode == REQUEST_GALLERY) {
if (resultCode == RESULT_OK) {
if (data != null) {
storeInPreferences(data.getData().toString());
}
} else Toast.makeText(this, "Canceled", Toast.LENGTH_SHORT).show();
}
}
и пытаюсь показать извлеченные URI с помощью этого кода:
Picasso.with(mContext)
.load(Uri.parse(getStringUriFromPrefs()))
.resize(500, 500)
.error(R.drawable.ic_error)
.into(holder.iv_card);
Это происходит только для изображений галереи.Те изображения, которые я получаю непосредственно с камеры, хорошо видны.
Это URI для изображения галереи: (У меня проблема с)
CONTENT://COM.ANDROID.PROVIDERS.MEDIA.DOCUMENTS/DOCUMENT/IMAGE%3A378071
, и это URI для изображения с камеры:
FILE:/STORAGE/EMULATED/0/DCIM/CAMERA/20190202_224630_2332127860148701493.JPG
Кроме того, я попробовал его на уровне API 18, и он работал хорошо. Но на уровне API 22 и 26 он не работает.Я не пробовал на других уровнях API.