Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"), 2);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == 2){
if (resultCode == RESULT_OK){
if (intent != null) {
Uri uri = intent.getData();
String path = uri.getPath();
document = new File(path);
}
}
}
}
Помогите, а то ничего не пойму. Ожидаю, что путь должен быть /document/image/picture.jpg, а выводит /document/image/156. А выбранная картинка и вовсе лежит в директории storage/sdcard/download/picture.jpg. Результатом должен быть new File ("/storage/sdcard/download/picture.jpg")
Так же использовал этот кусок кода, но он возвращает всегда null:
public String getRealPathFromURI(Context context, Uri contentUri) {
Cursor cursor = null;
try {
String[] proj = { MediaStore.Images.Media.DATA };
cursor = context.getContentResolver().query(contentUri, proj, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
} finally {
if (cursor != null) {
cursor.close();
}
}
}
В новых андроидах вам возвращается не путь на диске, а именно URI для доступа к выбранному файлу через ContentProvider. Для того, чтобы его открыть, используйте функцию ContentResolver.openFileDescriptor().
Если вам нужно содержимое, лучше откройте документированным способом. Если вам все-таки нужен путь к файлу, то вот работающий код: http://stackoverflow.com/a/20559418/1263771
пробовал понять читая статьи,не получилось!Прошу объяснить по простому на примере:есть StackPane с именем Mpane нужно увеличить его размер с допустим...
В БД есть таблица user, изначально пустая, создается методом createTable()