如何在android中同时查询外部和内部存储
我想从存储卡和手机存储器中获取所有媒体文件/歌曲的列表。有办法吗? 谢谢。内容解析程序方式-->MediaStore.Audio如何在android中同时查询外部和内部存储,android,storage,media,Android,Storage,Media,我想从存储卡和手机存储器中获取所有媒体文件/歌曲的列表。有办法吗? 谢谢。内容解析程序方式-->MediaStore.Audio 通过内容解析器查询内容提供商 实现适当的ListView,并通过适配器将查询内容解析器后获得的数据添加到ListView中 String[] columns = { android.provider.MediaStore.Audio.Albums._ID, android.provider.MediaStore.Audio.Albums.ALBUM }
通过内容解析器查询内容提供商
实现适当的ListView,并通过适配器将查询内容解析器后获得的数据添加到ListView中
String[] columns = { android.provider.MediaStore.Audio.Albums._ID,
android.provider.MediaStore.Audio.Albums.ALBUM };
cursor = managedQuery(MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI,columns, null, null, null);
String[] displayFields = new String[] { MediaStore.Audio.Albums.ALBUM };
int[] displayViews = new int[] { android.R.id.text1 };
setListAdapter(new SimpleCursorAdapter(this,android.R.layout.simple_list_item_1, cursor, displayFields,displayViews));
传统方式:扫描SD卡中的.mp3文件 使用以下代码获取sdcard目录的路径
File root = Environment.getExternalStorageDirectory();
String rootPath= root.getPath();
从rootPath位置,您可以构建SD卡上任何文件的路径。例如,如果在/DCIM/Camera/a.jpg
处有一个图像,则绝对路径将是rootPath+“/DCIM/Camera/a.jpg”。
但是,要列出SD卡中的所有文件,可以使用以下代码
String listOfFileNames[] = root.list(YOUR_FILTER);
listOfFileNames
将具有SD卡中存在的所有文件的名称,并通过过滤器设置的标准
假设您只想列出mp3文件,然后将下面的筛选器类名传递给list()函数
FilenameFilter mp3Filter = new FilenameFilter() {
File f;
public boolean accept(File dir, String name) {
if(name.endsWith(".mp3")){
return true;
}
f = new File(dir.getAbsolutePath()+"/"+name);
return f.isDirectory();
}
};
这些链接将帮助您正确理解