内部存储器中带有EXTRA_OUTPUT的Android ACTION_IMAGE_CAPTURE

sve*_*ija 4 camera android android-sdcard

如果我正在打电话的话,我正从相机拍照

File file = new File(getFilesDir().getAbsolutePath() + "/myImage.jpg");
Uri outputFileUri = Uri.fromFile(file);

cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
Run Code Online (Sandbox Code Playgroud)

OK button 在相机应用程序不起作用,根本什么都不做(实际上不会将其保存到我提供的内部存储器,因此应用程序本身什么都不做).

如果我打电话

File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/myImage.jpg");
Uri outputFileUri = Uri.fromFile(file);

cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
Run Code Online (Sandbox Code Playgroud)

一切都很好,照片存储在SDCard上.

我的问题是,有没有办法在没有SDCard的情况下以全分辨率存储捕获照片?

Bor*_*per 9

本机相机应用程序无法将图像保存在应用程序的私有内部目录中,因为这些目录仅适用于您的特定应用程序.

相反,您可以创建自定义相机活动以将图像保存到内部目录,或者您需要将库存相机应用程序与外部存储一起使用.

注意:如果您打算创建自定义相机活动,请确保您的目标至少为2.3及以上.低于该标记的任何东西都很难处理.


kat*_*oft 5

Camera活动将无法将文件保存到您活动的私人文件目录中,这就是它安静地失败的原因.您可以将图像从外部存储器移动到onActivityResult中的文件目录中.