我正在开发一款需要显示默认相机文件夹中图片的Android应用。我的问题是我不知道如何找到相机照片的内部默认存储文件夹。
当我找到它将手机连接到PC(它是没有SD卡的三星Galaxy S7)时,我看到图片存储在DCIM/Camera
中。但是,这不起作用。正在执行:files = new File("DCIM/Camera/");
会导致应用说没有任何内容。
如何找到相机照片的默认内部存储文件夹?
答案 0 :(得分:5)
首先,您需要了解Android。
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