Я пытаюсь получить файл пути для показа в представлении рециркулятора, используя намерение для выбора файла и результат действия в ответ на это действие, поэтому мой код работает в Android 4> до 7 <и работает нормально для тех версий, но в 7> = есть проблема с этим кодом, особенно в Android 9.
public void openGallery() {
try {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select file to upload "),
SettingsUtil.ACTIVITY_GALLERY);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == SettingsUtil.ACTIVITY_GALLERY && resultCode == RESULT_OK && null != data) {
Uri selectedImage = data.getData();
String[] filePathColumn = {MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver()
.query(selectedImage, filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
cursor.close();
String code = year + "-" + reservation + "-" + (counter++);
File auxFile = new File(picturePath);
}
}
Я ожидаю String picturePath = cursor.getString (columnIndex); получить путь, как старые версии Android 4+ <7, но в этих новых версиях есть проблема при работе в последних версиях </p>