当我打电话时用相机拍照
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);
相机应用程序上的 OK 按钮
无法正常工作,什么都不做(我猜实际上不会将其保存到内部存储器中,因此应用程序本身什么也不做)。
如果我调用
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);
一切正常,照片存储在 SDCard 上。
我的问题是,有没有办法在没有 SDCard 的情况下以全分辨率存储拍摄的照片?
最佳答案
原生相机应用无法将图像保存在您应用的私有(private)内部目录中,因为这些目录仅对您的特定应用可用。
相反,您可以创建自定义相机 Activity 以将图像保存到您的内部目录,或者您需要使用带有外部存储的库存相机应用。
注意:如果您计划创建自定义相机 Activity ,请确保您的目标至少为 2.3 及以上。低于该标记的任何东西都很难使用。
关于内部存储器中带有 EXTRA_OUTPUT 的 Android ACTION_IMAGE_CAPTURE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13402187/