Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android中同时查询外部和内部存储_Android_Storage_Media - Fatal编程技术网

如何在android中同时查询外部和内部存储

如何在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 }

我想从存储卡和手机存储器中获取所有媒体文件/歌曲的列表。有办法吗? 谢谢。

内容解析程序方式-->MediaStore.Audio
通过内容解析器查询内容提供商
实现适当的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();
  }
};

这些链接将帮助您正确理解