gpt4 book ai didi

android - 将相机中的图像存储到私有(private)应用程序缓存目录中

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:02:14 25 4
gpt4 key购买 nike

我想从相机捕捉图像并将其保存到私有(private)应用程序缓存目录。我意识到我必须授予相机应用写入我的私有(private)目录的权限,所以我添加了 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();
}
}

关于如何纠正这个问题的任何见解?

编辑:

当我将目录更改为公共(public) SD 卡时,它工作正常。

mTmpFile = File.createTempFile("tmp", ".jpg", Environment.getExternalStorageDirectory());

谢谢西蒙

最佳答案

您可以使用 http://developer.android.com/reference/android/hardware/Camera.html#takePicture(android.hardware.Camera.ShutterCallback 而不是传递 Uri 来存储图片, android.hardware.Camera.PictureCallback, android.hardware.Camera.PictureCallback, android.hardware.Camera.PictureCallback)

并获取应用内存中的内容。从那里你将能够做任何你想做的事。

不要忘记相机应用程序也在使用图库,而图库应用程序不允许检查您的私有(private)目录。

关于android - 将相机中的图像存储到私有(private)应用程序缓存目录中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13407899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com