以下代码用于从特定文件夹获取图像,但如何获取子文件夹的sdcard文件夹图像。
Cursor actualimagecursor = managedQuery(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, proj,
MediaStore.Images.Media.DATA + " like ? ",
new String[] { "%unzipped%" }, null);
抱歉英语沟通不好。
答案 0 :(得分:6)
尝试使用以下代码
public void searchImageFromSpecificDirectory() {
String path = null;
String uri = MediaStore.Images.Media.DATA;
// if GetImageFromThisDirectory is the name of the directory from which image will be retrieved
String condition = uri + " like '%/GetImageFromThisDirectory/%'";
String[] projection = { uri, MediaStore.Images.Media.DATE_ADDED,
MediaStore.Images.Media.SIZE };
Vector additionalFiles = null;
try {
if (additionalFiles == null) {
additionalFiles = new Vector<String>();
}
Cursor cursor = managedQuery(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection,
condition, null, null);
if (cursor != null) {
boolean isDataPresent = cursor.moveToFirst();
if (isDataPresent) {
do {
path = cursor.getString(cursor.getColumnIndex(uri));
System.out.println("...path..."+path);
additionalFiles.add(path);
}while(cursor.moveToNext());
}
if (cursor != null) {
cursor.close();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
答案 1 :(得分:2)
请尝试以下代码:在图像文件夹中包含Sample子文件夹。
Cursor cursor = managedQuery(android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null,Images.Media.DATA + " like '/mnt/sdcard/Images/Sample%'", null, null);
while (cursor.moveToNext()) {
System.out.println(cursor.getString(cursor.getColumnIndex(Images.Media.DATA)));
System.out.println(cursor.getString(cursor.getColumnIndex(Images.Media.DISPLAY_NAME)));
}
答案 2 :(得分:0)
我想给你一个建议,看看你是否想要观看特定的目录假设/ sdcard /。然后使用FileObserver类并使其递归到每个子目录。它肯定会对你有所帮助。试试吧。使用堆栈或ArrayList来存储/ sdcard /中的所有目录,而不是所有目录的startWatching。