Please take a look at this code, this works fine with me
//define the file-name to save photo taken by Camera activity fileName = "new-photo-name.jpg"; //create parameters for Intent with filename ContentValues values = new ContentValues(); values.put(MediaStore.Images.Media.TITLE, fileName); values.put(MediaStore.Images.Media.DESCRIPTION,"Image capture by camera"); imageUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1); startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
also applies this method to read the image when you shot the image from the camera.
//handling intent responses @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == Activity.RESULT_OK) try { if (bitmap != null) {bitmap.recycle();} String[] proj = { MediaStore.Images.Media.DATA }; Cursor cursor = managedQuery(imageUri, proj, null, null, null); int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); cursor.moveToFirst(); imageUriString = cursor.getString(column_index); getContentResolver().notifyChange(imageUri, null); ContentResolver cr = getContentResolver(); try { bitmap = android.provider.MediaStore.Images.Media.getBitmap(cr, imageUri); imageButtonPictureShop.setImageBitmap(bitmap);
//this.uploadImage (); this.executeMultipartPost (); //this.uploadFile(imageUriString); } catch (exception e) {Toast.makeText (this, "Failed to load", Toast.LENGTH_SHORT) .show (); if (e.getMessage ()! = null) Log.e ("Exception", e.getMessage ()); else Log.e ("Exception", "Exception"); e.printStackTrace (); }
} catch (Exception e) { if(e.getMessage() != null)Log.e("Exception" , e.getMessage()); else Log.e("Exception" , "Exception"); e.printStackTrace(); } super.onActivityResult(requestCode, resultCode, data); }
source share