访问Android中的内部存储

时间:2017-06-08 15:55:02

标签: android android-camera android-internal-storage

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

当我找到它将手机连接到PC(它是没有SD卡的三星Galaxy S7)时,我看到图片存储在DCIM/Camera中。但是,这不起作用。正在执行:files = new File("DCIM/Camera/");会导致应用说没有任何内容。

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

1 个答案:

答案 0 :(得分:5)

首先,您需要了解Android。

  • 内部存储空间是 app private storage
  • 外部存储是可公开访问的存储区域

Android中的外部存储意味着公共存储,意味着内部存储,如设备内存和SD卡。保存到外部存储意味着设备内部和SD卡,同时保存到itnernal存储意味着app私有存储。

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

现在,您需要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