3

我正在开发一个需要显示默认相机文件夹中的图像的 Android 应用程序。我的问题是我不知道如何找到相机照片的内部默认存储文件夹

当我寻找将手机连接到 PC 时(它是没有 SD 卡的三星 Galaxy S7),我看到图片存储在DCIM/Camera. 但是,这不起作用。正在做:files = new File("DCIM/Camera/");导致应用程序说那里什么都没有。

如何找到相机照片的默认内部存储文件夹?

4

1 回答 1

9

首先,你需要了解安卓。

  • 内部存储是应用程序私有存储
  • 外部存储是可公开访问的存储区域

Android中的外部存储是指公共存储,并且是指设备内存和SD卡中的内部存储。保存到外部存储意味着设备内部和 SD 卡,而保存到内部存储意味着应用程序私有存储。

因此,图像存储在外部存储或应用公共存储中,任何应用都可以在其中保存、加载和管理文件。这些图像是公开可用的,因此根据开发人员的定义不在内部存储中。

现在,您需要该WRITE_EXTERNAL_STORAGE权限,如果您以 API 23 为目标,您还需要请求它,因为这是一个危险的权限。

要访问图像,您需要创建一个新文件:

storageDir = new File(
    Environment.getExternalStoragePublicDirectory(
        Environment.DIRECTORY_PICTURES
    ), 
    "album name here, or remove this part to save or load directly into DCIM"
);

这个可以用来保存或者加载图片,但是记得在加载之前要索引目录找到图片,防止出现IOException

于 2017-06-08T16:00:30.817 回答