Мое приложение имеет возможность выбрать фотографию из библиотеки. Точно я хочу путь к файлу из этого выбора.Выбирая фотографию с помощью нового приложения Google Фото
Это код, чтобы создать намерение для выбора фото:
Intent photoPickerIntent = new Intent(Intent.ACTION_PICK,
MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
photoPickerIntent.setType("image/*");
startActivityForResult(photoPickerIntent, INTENT_REQUEST_CODE_SELECT_PHOTO);
Это код, который получает путь к файлу из URI:
Cursor cursor = null;
String path = null;
try {
String[] projection = { MediaStore.Images.Media.DATA };
cursor = context.getContentResolver().query(contentUri, projection, null, null, null);
int columnIndex = cursor.getColumnIndexOrThrow(projection[0]);
cursor.moveToFirst();
path = cursor.getString(columnIndex);
} finally {
if (cursor != null) {
cursor.close();
}
}
return path;
До вчерашнего дня обновления Google Фото приложения все работало отлично хорошо. Теперь path
имеет значение null после разбора URI.
URI похож на это: content://com.google.android.apps.photos.contentprovider/0/1/content%3A%2F%2Fmedia%2Fexternal%2Fimages%2Fmedia%2F75209/ACTUAL
Я также пытался создать намерения с действием Intent.ACTION_GET_CONTENT - не повезло.
Я принял этот ответ, хотя для нашего потока это немного обходное решение. Но это позволяет вернуть приложение обратно в полностью рабочее состояние, поэтому это имеет значение. Одна нота: я не выполнял декодирование Bitmap из InputStream - я скопировал его в какой-то файл File TempFile = new File («path_to_my_temp_directory»); а затем использовал последний для всего материала. –
@Akhil Спасибо за это! – Petro
'is = context.getContentResolver(). OpenInputStream (uri);' возвращает значение null. Кажется, я не могу найти решение для выбора изображений из приложения Google для фотографий. Если у кого-то есть рабочее решение, пожалуйста, поделитесь. – ArJ