我想要从相机中捕获一张图像,并将它保存到私有应用程序缓存目录中。我意识到我必须给相机应用程序写入我的私有目录的权限,因此我添加了
现在的情况是,相机应用程序打开了,我可以拍照,但是当我点击确认按钮时,没有任何反应。相机应用程序仍然处于打开状态,没有日志输出。我猜测这可能是一个权限问题。
任何关于如何纠正这个问题的见解?
编辑:
当我将目录更改为公共SD卡时,它就可以正常工作。
感谢您,Simon。
FLAG_GRANT_WRITE_URI_PERMISSION
标志。现在的情况是,相机应用程序打开了,我可以拍照,但是当我点击确认按钮时,没有任何反应。相机应用程序仍然处于打开状态,没有日志输出。我猜测这可能是一个权限问题。
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();
}
}
任何关于如何纠正这个问题的见解?
编辑:
当我将目录更改为公共SD卡时,它就可以正常工作。
mTmpFile = File.createTempFile("tmp", ".jpg", Environment.getExternalStorageDirectory());
感谢您,Simon。