我试图用MediaStore.Images.Media.DATA读取SD卡中存在的照片,但我总是得到一个空光标! 这是我用于阅读的代码:
final String[] columns = { MediaStore.Images.Media.DATA,
MediaStore.Images.Media._ID };
Cursor imagecursor = getContentResolver()
.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, columns,
MediaStore.Images.Media.DATA + " like ? ",
new String[] { "%"+eventName.trim()+"%" }, null);
imagecursor.setNotificationUri(getContentResolver(),
MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
this.imageUrls = new ArrayList<String>();
Log.i("imagecursor.getCount()", Integer.toString(imagecursor.getCount()));
for (int i = 0; i < imagecursor.getCount(); i++) {
imagecursor.moveToPosition(i);
int dataColumnIndex = imagecursor.getColumnIndex(MediaStore.Images.Media.DATA);
imageUrls.add(imagecursor.getString(dataColumnIndex));
}
当然我添加了这个
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
到AndroidManifest.xml
答案 0 :(得分:0)
我发现问题出在媒体扫描仪上,所以我解决了它使用一个名为Scan Media的简单应用程序扫描外部存储,然后MediaStore将能够找到新的元素。
答案 1 :(得分:-1)
我不知道这对你有帮助,但我在帮助你
String ExternalStorageDirectoryPath = Environment.getExternalStorageDirectory()
.getAbsolutePath();
String targetPath = ExternalStorageDirectoryPath + "/yoururl/";
Toast.makeText(getActivity(), targetPath, Toast.LENGTH_LONG).show();
File targetDirector = new File(targetPath);
File[] files = targetDirector.listFiles();
for (File file : files){
myImageAdapter.add(file.getAbsolutePath());
}
在这个例子中,我得到图像并在网格视图中显示