无需SD卡即可拍照

时间:2014-10-08 18:14:56

标签: android

android文档向您展示如何捕获图像并保存到EXTERNAL存储中,但即使用户没有SD卡,我也希望我的应用程序正常工作。 我只需临时保存文件,直到我上传。

所以我这样创建一个文件,并通过意图将URI传递给相机应用程序:

File imgfile = new File(getFilesDir(), imageFileName);
imgfile.setReadable(true, false);
imgfile.createNewFile();

Intent captureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
captureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(imgFile));
startActivityForResult(captureIntent, IMAGE_PICKER_TAKE);

但是在拍摄照片并点击确定后,相机应用程序永远不会返回我的应用程序。我猜这是因为它无法访问我传递给它的文件,因为它位于getFilesDir()返回的目录中,我认为不应该被其他应用程序读取。我尝试设置setReadable(),但它没有解决它。我可以使用内部存储中的另一个目录吗?

*或者有没有办法告诉相机应用程序将图片保存在自己的文件目录中,然后向我传递一个我可以用contentResolver读取的URI(我选择一个时的方式)来自画廊的照片)。 *

1 个答案:

答案 0 :(得分:1)

外部存储与可移动SD卡无关。好吧不是今天。 getFilesDir()是内部私有内存,不能访问其他aps。只需使用外部文件dir。