I have a button and when clicking on it, it will start camera and save image that I take, but something not working. This code from here :
private void takeAPic() {
//camera stuff
Intent imageIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
//folder stuff
File imagesFolder = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "MyImages");
imagesFolder.mkdirs();
File image = new File(imagesFolder, "QR_" + timeStamp + ".png");
Uri uriSavedImage = Uri.fromFile(image);
log("uriSavedImage: "+uriSavedImage.toString());
imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage);
getActivity().startActivityForResult(imageIntent, Constant.REQUEST_CODE.TAKE_A_PIC);
}
Log: uriSavedImage:file:///storage/emulated/0/Pictures/MyImages/QR_20160104_165527.png
Image that I take not saved on my phone and this app return null data:
{who=null, request=62, result=-1, data=Intent { }}
In Manifest:
<uses-permission android:name="android.permission.CAMERA"/>
<uses-feature android:name="android.hardware.camera"></uses-feature>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
onActivity:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case Constant.REQUEST_CODE.TAKE_A_PIC:
if (resultCode == Activity.RESULT_OK) {
setSystemImage(data);
}
break;
default:
break;
}
private void setSystemImage(Intent data) {
Uri targetUri = data.getData();
log("log: "+targetUri.toString());
try {
bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(targetUri));
image.setImageBitmap(bitmap);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}