今天我要处理一件困难的事情。
我启动相机并希望将拍摄的图像直接保存到我的内部存储器中,而不是将其移动到其中。
File targetDir = new File(getApplicationContext().getFilesDir()+File.separator+"PROJECTMAIN"+File.separator+"SUBFORDER");
targetDir.mkdirs(); //create the folder if they don't exist
File externalFile = new File(targetDir, "picturename.jpg");
Uri imageURI = Uri.fromFile(externalFile);
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageURI);
startActivityForResult(takePictureIntent, actionCode);
似乎如果我尝试将它们直接保存到内部存储中,相机会忽略我在拍照后单击“确定”按钮。我认为“内部”URI 有问题,因为如果我使用Environment.getExternalStorageDirectory()
而不是getApplicationContext().getFilesDir()
用于 extra_output,一切正常,但之后我必须将文件移动到内部存储中(移动过程对“getApplicationContext() .getFilesDir()")
当我拍照并按下确定按钮以继续使用内部 URI 时,相机什么也不做……我不敢相信在 Android 中存储有这么难。
有任何想法吗?也许相机只允许将图片保存到外部存储器?