Sim*_*ays 8 permissions camera android
我想从相机捕获图像并将其保存到私有应用程序缓存目录.我意识到我必须给相机应用程序写入我的私人目录的权限,所以我添加了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();
}
}
Run Code Online (Sandbox Code Playgroud)
关于如何纠正这些问题的任何见解?
编辑:
当我将目录更改为公共SD卡时,它工作正常.
mTmpFile = File.createTempFile("tmp", ".jpg", Environment.getExternalStorageDirectory());
Run Code Online (Sandbox Code Playgroud)
谢谢西蒙
您可以使用http://developer.android.com/reference/android/hardware/Camera.html#takePicture(android.hardware.Camera.ShutterCallback , android.hardware.Camera.PictureCallback, android.hardware.Camera.PictureCallback, android.hardware.Camera.PictureCallback)
并获取应用程序内存中的内容。从那里你将能够做任何你想做的事情。
不要忘记相机应用程序也使用图库,并且图库应用程序不允许检查您的私人目录。
| 归档时间: |
|
| 查看次数: |
3864 次 |
| 最近记录: |