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

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

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

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

【问题讨论】:

    标签: android android-camera android-gallery android-sdk-2.3


    【解决方案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
        ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-12
      • 2011-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多