android – 将图像从相机存储到私有应用缓存目录

android – 将图像从相机存储到私有应用缓存目录,第1张

概述我想从相机捕获图像并将其保存到私有应用程序缓存目录.我意识到我必须给相机应用程序写入我的私人目录的权限,所以我添加了FLAG_GRANT_WRITE_URI_PERMISSION标志. 发生了什么,相机应用程序打开,我可以拍照,但当我点击确定按钮,没有任何反应.相机应用程序保持打开状态没有日志输出.我想这是因为许可问题. private void getCameraImage() { tr 我想从相机捕获图像并将其保存到私有应用程序缓存目录.我意识到我必须给相机应用程序写入我的私人目录的权限,所以我添加了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",Environment.getExternalStorageDirectory());

谢谢
西蒙

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

并获取应用程序内存中的内容.从那里你可以做任何你想做的事.

不要忘记相机应用程序也在使用图库,并且不允许图库应用程序检查您的私人目录.

总结

以上是内存溢出为你收集整理的android – 将图像从相机存储到私有应用缓存目录全部内容,希望文章能够帮你解决android – 将图像从相机存储到私有应用缓存目录所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1138077.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存