Я выбираю изображение с помощью следующего намерения:
Intent getIntent = new Intent(Intent.ACTION_GET_CONTENT);
getIntent.setType("image/*");
Intent pickIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
pickIntent.setType("image/*");
Intent chooserIntent = Intent.createChooser(getIntent, "Select Image");
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[] {pickIntent});
startActivityForResult(chooserIntent, PICK_IMAGE);
Я извлекаю намерение, переопределяя onActivityResult
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
if (requestCode == PICK_IMAGE) {
Uri imageUri = data.getData();
ProfileCalls.editProfileImage(imageUri, getContext()); //Ion post data
}
}
Затем я пытаюсь найти путьизображение следующим образом, выбрасывающее следующее исключение java.io.FileNotFoundException: /external/images/media/5302 (No such file or directory)
public static void editProfileImage(Uri profileImageUri, final Context context) {
Ion.with(context)
.load("url")
.setMultipartFile("profileImage", "application/json; charset=UTF-8", new File(profileImageUri.getPath()))
.asJsonObject()
.setCallback(new FutureCallback<JsonObject>() {
@Override
public void onCompleted(Exception e, JsonObject result) {
System.out.print(e);
System.out.print(result);
}
});
}