Android显示storage/sdcard下存储的所有图片
时间: 2023-05-16 09:05:48 浏览: 249
您可以使用以下代码来显示storage/sdcard下存储的所有图片:
```java
String[] projection = {MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, null, null, null);
ArrayList<String> imagePathList = new ArrayList<String>();
if (cursor != null) {
while (cursor.moveToNext()) {
String imagePath = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA));
imagePathList.add(imagePath);
}
cursor.close();
}
```
这段代码将使用MediaStore.Images.Media.EXTERNAL_CONTENT_URI来获取存储在SD卡上的所有图片的路径,并将它们存储在一个ArrayList中。
相关问题
uniapp解决Android10读取不到/sdcard/、/storage/emulated/0/文件的问题
为了解决Android 10读取不到/sdcard/和/storage/emulated/0/文件的问题,你可以在你的uniapp项目的AndroidManifest.xml文件中的application标签内添加android:requestLegacyExternalStorage="true"属性。这个属性的作用是允许应用程序继续使用旧的存储机制来读取和写入存储卡上的文件。这个临时解决方法可以兼容到Android 11版本。另外,你也可以将targetSdk版本降低到29以下来解决这个问题。请注意,这只是一个临时解决方法,因为从Android Q开始,Android希望禁止应用程序操作非沙箱内的数据,这个机制只在过渡期间有效。对于Android Q及以上的版本,建议使用新的分区存储机制来访问文件。
("file:///sdcard/" 与 "/storage/emulated/0"
"file:///sdcard/" 和 "/storage/emulated/0" 都是用于访问Android设备上的存储空间的路径。它们实际上指向了同一个位置,即设备的内部存储空间。
在Android设备中,"/storage/emulated/0" 是内部存储的根目录,也被称为主要外部存储。它是设备上默认的存储位置,用于存储应用程序数据、媒体文件等。
而"file:///sdcard/" 是一个URI(Uniform Resource Identifier)格式的路径,它指向了设备的内部存储空间。在Android中,"/sdcard/" 实际上是指向 "/storage/emulated/0" 的一个符号链接(symbolic link),所以它们指向的是同一个位置。
总结起来,无论是使用"file:///sdcard/" 还是 "/storage/emulated/0",都可以访问到Android设备的内部存储空间。
阅读全文