I am working on an Android Project but I am stuck when I need to take a picture from gallery. Indeed, when I take the first picture, everything is going well. But, if I take a second picture, the exception "TransactionTooLargeException" is thrown and my Application crashed.
The code used to start the activity :
public void addImage(View view) {
if(isPermissionEnable) {
try {
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, ""), ADD_IMAGE);
} catch (Exception ex) {
GraphicUtils.displayPopup(this, getString(R.string.warning),
getString(R.string.image_too_large));
}
}else
{
askPermissions();
}
}
The code to get the result :
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
switch (requestCode) {
case ADD_IMAGE:
if(getContentResolver().getType(data.getData()).contains("jpeg") || getContentResolver().getType(data.getData()).contains("jpg") || getContentResolver().getType(data.getData()).contains("png") || getContentResolver().getType(data.getData()).contains("bmp")) {
Uri uri = data.getData();
try {
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);
int minimumSize = (bitmap.getWidth() < bitmap.getHeight()) ? bitmap.getWidth() : bitmap.getHeight();
finalBitmap = ThumbnailUtils.extractThumbnail(bitmap, minimumSize, minimumSize);
imageView.setImageBitmap(finalBitmap);
button_right.setVisibility(View.VISIBLE);
button_left.setVisibility(View.VISIBLE);
} catch (Exception e) {
e.printStackTrace();
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(uri.toString());
builder.setTitle("Erreur");
AlertDialog dialog = builder.create();
dialog.show();
}
}
else{
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(getContentResolver().getType(data.getData()));
builder.setTitle("Erreur");
AlertDialog dialog = builder.create();
dialog.show();
}
break;
default :
break;
}
}
}
Do you have any idea to solve my problem please ?