java - MediaStore.EXTRA_OUTPUT renders data null, other way to save photos? -


google offers versatile code taking photos via intent:

@override public void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.main);      // create intent take picture , return control calling application     intent intent = new intent(mediastore.action_image_capture);      fileuri = getoutputmediafileuri(media_type_image); // create file save image     intent.putextra(mediastore.extra_output, fileuri); // set image file name      // start image capture intent     startactivityforresult(intent, capture_image_activity_request_code); } 

the problem if you're me , want pass photos extras, using extra_output seemingly runs off photo data , makes subsequent actions think intent data null.

it appears big bug android.

i'm trying take photo display thumbnail in new view. i'd have saved full sized image in user's gallery. know way specify image location without using extra_output?

here's have currently:

public void takephoto(view view) {     intent takepictureintent = new intent(mediastore.action_image_capture);      fileuri = getoutputmediafileuri(media_type_image); //  takepictureintent.putextra(mediastore.extra_output, fileuri);      startactivityforresult(takepictureintent, camera_request_code); }  /** create file uri saving image or video */ private static uri getoutputmediafileuri(int type){       return uri.fromfile(getoutputmediafile(type)); }  /** create file saving image or video */ @suppresslint("simpledateformat") private static file getoutputmediafile(int type){      file mediastoragedir = new file(environment.getexternalstoragepublicdirectory(               environment.directory_pictures), "joshuatree");      if (! mediastoragedir.exists()){         if (! mediastoragedir.mkdirs()){             log.d("joshuatree", "failed create directory");             return null;         }     }      // create media file name     string timestamp = new simpledateformat("yyyymmdd_hhmmss").format(new date());     file mediafile;     if (type == media_type_image){         mediafile = new file(mediastoragedir.getpath() + file.separator +         "img_"+ timestamp + ".jpg");     } else {         return null;     }      return mediafile; }  @override protected void onactivityresult(int requestcode, int resultcode, intent data) {     if (requestcode == camera_request_code) {         if (resultcode == result_ok) {             handlesmallcameraphoto(data);         }     } }   private void handlesmallcameraphoto(intent intent) {     bundle extras = intent.getextras();     mimagebitmap = (bitmap) extras.get("data");     intent displayintent = new intent(this, displayphotoactivity.class);     displayintent.putextra("bitmapimage", mimagebitmap);     startactivity(displayintent); } 

}

if specified mediastore.extra_output, image taken written path, , no data given onactivityresult. can read image specified.

see solved same question here: android camera : data intent returns null


Comments

Popular posts from this blog

linux - Does gcc have any options to add version info in ELF binary file? -

android - send complex objects as post php java -

charts - What graph/dashboard product is facebook using in Dashboard: PUE & WUE -