KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I would like to capture an image from the camera and save it to the private app cache directory. I realize that I have to give the camera app permission to write to my private directory, so I added the FLAG_GRANT_WRITE_URI_PERMISSION flag. What's happening is, that the camera app opens, I can take the picture, but when i click on the OK button, nothing happens. The camera app stays open. No log output. I guess it's because of a permission problem. private void getCameraImage() { try { mTmpFile = File.createTempFile("tmp", ".jpg", getCacheDir()); Uri imgUri = Uri.fromFile(mTmpFile); Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); i.putExtra(MediaStore.EXTRA_OUTPUT, imgUri); i.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION); // i.setData(imgUri); // if uncommented, i get an ActivityNotFound Exception startActivityForResult(i, REQUEST_CAMERA); } catch (IOException e) { Log.e(TAG, "getCameraImage()", e); Toast.makeText(this, "Something went wrong", Toast.LENGTH_SHORT).show(); } } Any insights, on how I could correct that? Edit: When I change the directory to the public SD card, then it works fine. mTmpFile = File.createTempFile("tmp", ".jpg", Environment.getExternalStorageDirectory()); Thanks Simon
Tags (comma-separated)
Save Edits
Cancel