如何找到 Android 手机的相机图像文件夹?

Posted

技术标签:

【中文标题】如何找到 Android 手机的相机图像文件夹?【英文标题】:How can I find out the camera images folder of an Android phone? 【发布时间】:2013-06-04 07:09:54 【问题描述】:

我正在开发一款适用于 android 的相机应用。

一项要求是将拍摄的照片保存到设备的默认相机照片文件夹,即 Android 原生相机存储照片的文件夹。

我如何才能确定本机相机将其拍摄的照片存储在何处 - 据我了解,这可能因不同品牌(三星、HTC、摩托罗拉、索尼...)和型号(Galaxy Tab、Galaxy S4...)

【问题讨论】:

【参考方案1】:

使用getExternalStoragePublicDirectory()

带参数DIRECTORY_PICTURES

(或者,对于其他用例,其他类似参数,例如DIRECTORY_MOVIES)

【讨论】:

啊!所以 DIRECTORY_PICTURES 不返回***画廊目录?这就是让我困惑的地方。 我认为DIRECTORY_DCIM 更适合:“将设备安装为相机时图片和视频的传统位置”。话虽如此,欢迎“原生相机”为所欲为,您无法先验知道该相机将其图像存储在何处。 @CommonsWare 非常感谢!这确实是我一直在寻找的。​​span> @CommonsWare 但这个文件夹通常也有一个缩略图文件夹。是否可以获取相机本身的文件夹?或者我应该忽略那里以“。”开头的文件夹。 ? @androiddeveloper:“但这个文件夹通常也有一个缩略图文件夹”——我不能说“通常”,但DIRECTORY_DCIM 可以有子目录,由用户或应用程序创建。 “是否可以获取相机本身的文件夹?” -- 相机没有文件夹。相机应用程序可以将图像放在任何他们想要的位置,无论是直接放在DIRECTORY_DCIM 中,还是放在DIRECTORY_DCIM 的子目录中,或者完全放在其他地方。而且,还有很多很多的相机应用程序。【参考方案2】:

我知道这有点晚了,但你可以这样做:

String CameraFolder="Camera";
File CameraDirectory = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).toString());
File[] files = CameraDirectory.listFiles();
for (File CurFile : files) 
      if (CurFile.isDirectory()) 
                CameraDirectory=CurFile.getName();
                break;
      

final String CompleteCameraFolder = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).toString() + "/" + CameraFolder;

您可以选择在 for 循环中执行操作。

【讨论】:

这种方法对我来说似乎不合适。比如我的 DCIM 目录里面有 4 个文件夹。【参考方案3】:

有关此主题的其他信息。您需要添加访问外部存储的权限,否则listFiles() 始终返回 null。在您的 AndroidManifest.xml 中添加以下内容

<?xml version="1.0" encoding="utf-8"?>
<manifest package="com.tomoima.filedirectory"
      xmlns:android="http://schemas.android.com/apk/res/android">
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <application
    ...

【讨论】:

以上是关于如何找到 Android 手机的相机图像文件夹?的主要内容,如果未能解决你的问题,请参考以下文章

Android自动裁剪相机捕获的图像

如何将图像从安卓相机上传到网络服务器(不在应用程序中)

Android - 如何放置一个从 SD 卡或相机胶卷加载图像的图像视图?

保存用相机和旋转手机拍摄的图像时,Android 应用程序死机

如何使用Android中的Camera.Parameter在黑白模式下打开和捕捉相机图片

如何等到相机在android中捕获图像?