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

标签 android camera 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);
相机应用程序上的

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/

相关文章:

java - 如何判断摄像头是否在使用中?

android - USB 连接时摩托罗拉翻盖无法访问 SD 卡

android - 从 Assets 文件夹复制到 SD 卡

java - 将传感器数据保存到android中的文件

android - 如何将 bitbucket 私有(private) Git 存储库添加到 AOSP?

java - Android在Webview中检测URL视频

android - 测试用例失败后继续 jacoco 代码覆盖率报告

java - 保存图像后检查 SD 卡 (Android)

Android 9 补丁工具 : What is the new layout bounds feature?

ios - 如何在 Swift 3 中强制打开后置摄像头闪光灯?