android中扫描模拟器sd卡中mp3后缀的所有音乐文件,并显示到listView中,求源码或实现方法?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android中扫描模拟器sd卡中mp3后缀的所有音乐文件,并显示到listView中,求源码或实现方法?相关的知识,希望对你有一定的参考价值。

初学,就是简易的播放器,无源码提示下具体使用的方法也行,382842024@qq.com thanks!

android系统会自动把添加到SD卡上的歌曲添加到一个SQLite数据库里 我们要做的就是把歌曲的信息从这个数据库里查询出来
查询SD卡上的mp3歌曲信息
Cursor mAudioCursor = this.getContentResolver().query(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
null,// 字段 没有字段 就是查询所有信息 相当于SQL语句中的 “ * ”
null, // 查询条件
null, // 条件的对应?的参数
MediaStore.Audio.AudioColumns.TITLE);// 排序方式
// 循环输出歌曲的信息
List<Map<String, Object>> mListData = new ArrayList<Map<String, Object>>();
for (int i = 0; i < mAudioCursor.getCount(); i++)
mAudioCursor.moveToNext();
// 找到歌曲标题和总时间对应的列索引
int indexTitle = mAudioCursor
.getColumnIndex(MediaStore.Audio.AudioColumns.TITLE);//歌名
int indexARTIST = mAudioCursor
.getColumnIndex(MediaStore.Audio.AudioColumns.ARTIST);//艺术家
int indexALBUM = mAudioCursor
.getColumnIndex(MediaStore.Audio.AudioColumns.ALBUM);//专辑

String strTitle = mAudioCursor.getString(indexTitle);
String strARTIST = mAudioCursor.getString(indexARTIST);
String strALBUM = mAudioCursor.getString(indexALBUM);

HashMap<String, Object> nowMap = new HashMap<String, Object>();
nowMap.put("SongName", strTitle + "---" + strARTIST
+ "---" + strALBUM);
mListData.add(nowMap);

加载到ListView里就很简单了
参考技术A 先扫描整个文件或者文件夹,把 .mp3 的文件都扫出来,把这些文件的路径添加到Map/List,然后拿出来做自己想要的操作。
扫描文件加其实就是一个方法的递归:
1,获取一个文件夹内的文件列表(文件和目录)
2,遍历
3,判断当前的是文件还是目录
4,文件就返回,继续下一个,文件夹就继续 1

android模拟器sd卡中使用

android模拟器sd卡如何创建,如何改变权限,如何在java文件中使用?具体步骤,谢谢,有高分哦,

1.创建镜像文件
用cmd中进入到android的SDK的Tools目录下,执行mksdcard创建。
例如我的tools目录为:E:\skyland\android-sdk-windows-1.0_r2\tools>
则:E:\skyland\android-sdk-windows-1.0_r2\tools>mksdcard 128M sdcard.img
其中第一个参数为要创建的sdcard容量大小(容量大小自己决定),第二个参数为sdcard的名字
2.启动带sdcard的Android模拟器
在刚才的Dos界面下,E:\skyland\android-sdk-windows-1.0_r2\tools>emulator -sdcard sdcard.img
这样会看到tools目录下就会动态的产生一个sdcard.img.lock的文件夹,当关闭模拟器时又会消失
注意:不要关闭这个Dos窗口,不然连模拟器也会关掉,后面一步也不能执行
3.添加文件到sdcard
另外开一个Dos窗口(cmd),还是要cd到android的SDK的Tools目录下,用adb push命令添加
E:\skyland\android-sdk-windows-1.0_r2\tools>adb push new.JPG /sdcard
第一个参数为要加入的图片(mp3)全名,如果名字中间有空格,要用双引号将其括起来
如:E:\skyland\android-sdk-windows-1.0_r2\tools>adb push "First Start.mp3" /sdcard
第二参数就是刚才创建的sdcard了。
4.查看所添加的文件
这一步可能要以带sdcard的方式重启Android模拟器才能看到刚才所添加的资源文件,即先关掉模拟器,
然后E:\skyland\android-sdk-windows-1.0_r2\tools>emulator -sdcard sdcard.img
启动模拟器之后,点击MENU上面那箭头-->Dev Tools-->Raw Image Viewer 就会以幻灯片的形式
看到刚添加的
图片文件了,然后通过按下面左右控制图片浏览
有人说可以在MENU上面那箭头-->Dev Tools-->Media Scanner看到所添加的mp3文件,但我试来不
行, 哪位行的话给我留言....呵呵
我的方法是:MENU上面那箭头-->Music-->Songs就看到所添加的mp3文件了,点一首Enjoy一下吧
本来第一首是英文名的,但不知道为什么会乱码,还有我加入的文件名跟显示歌名不同的
===========MyEclipse下使用sdcard==============
如果没创建.img文件的话,请回到开头做1,2步。
注意:如果没按第2步启动模拟器,却做下面的内容的话,就会报错说 sdcard是只读文件,
添加不成功
1.启动MuEclipse,菜单Window-->Perspective-->other-->DDMS
选中sdcard,然后点击push就可以把图片的资源添加到sdcard了
2.用到sdcard资源编译Android应该程序
如果编译Android应该程序的时候需要用到sdcard的资源,则在选则运行文件后
右击Run As-->Open Run Dialog-->Target
在Target标签的Aditional Emulator Command Line Options中加入启动参数
-sdcard E:\skyland\android-sdk-windows-1.0_r2\tools\sdcard
注意:是绝对路径
如果没按第二步启动模拟器的话,permissions那列对应的sdcard将会是“---------”
++++++++++++++++++++++++++++++++++++++++++
华丽的分割线
++++++++++++++++++++++++++++++++++++++++++
今天学到了android的数据库开发,由于要用到DDMS,所以就查了些资料,没想到期间又获得了一些模拟SD卡的信息,整理如下:

Andorid开发中经常遇到与SD卡有关的调试,Android SDK+Eclipse提供了SD卡的模拟方法。使用方法如下:
  1、创建一个SD卡镜像文件。
   打开cmd,输入如下命令:
   mksdcard 1024M sdcard.img
   该命令会在当前目录下生成一个sdcard.img文件,该文件就是Android模拟器的SD卡镜像文件。
   1024M表示1024兆,即该SD卡有1个G的容量,也可用K做单位(1M=1024K),K,M必须大写。
   目前Android支持8M~128G的SD卡。
  2、运行带有SD卡的模拟器
  创建了SD卡镜像文件,只是创建了一个文件,还不能在模拟器中直接用,要在模拟器中可看到该SD卡,方法有两种,如下:   

   ◆在cmd中,命令如下:
   emulator -sdcard e:sdcard.img
   ◆在Eclipse中,在Run->Run Configurations...菜单里面的Target标签页里面,输入启动参数,如下图:

3、向SD卡中导文件
   ◆在cmd中,命令如下:

这会将本地当前目录下的test.txt文件考到sdcard中,文件名不变。前一个test.txt是本地文件的路径,sdcard是目的sdcard镜像的文件名(去掉后缀)。
   ◆在Eclipse中,操作如下:
   在设置了RUN的命令参数之后,RUN一个应用,然后使用DDMS的File Explorer工具导入导出文件。
   打开DDMS工具:在Eclipse的Window->Open Perspective->Other...里面打开DDMS工具。
   在DDMS的File Explorer标签页里面选择sdcard目录导入导出文件,如下图:

4、在模拟器中使用SD卡中的文件
   导入文件后,如果要在模拟器中访问,还需要在模拟器中的Dev tools里面scan一下媒体文件,如下图:
参考技术A 新建avd时就输入的虚拟的sd卡的大小,就是你自己设置的多少m的那个
还有如果你想往sd卡里放东西,找到android sdk的tools文件夹(在命令行中),运行
adb push xxx1 xxx2
其中xxx1是你电脑的目录(在你电脑里的你想放到sd卡里的文件的路径)
xxx2是你avd的目录(放在/sdcard/xxx就行)

以上是关于android中扫描模拟器sd卡中mp3后缀的所有音乐文件,并显示到listView中,求源码或实现方法?的主要内容,如果未能解决你的问题,请参考以下文章

Flex/air mobile - 显示来自 SD 卡的所有 mp3 歌曲,带有 id3 信息和海报图像

自己写的android camera应用,拍完的照片保存在sd卡中,但是不能在gallery中看不到,重启手机后才能看到

android中实现向sd卡中续写文件的问题:

如何以编程方式备份​​ SD 卡中的 sqlite 文件?

如何在android中获取存储在sd卡中的文件名

Android如何扫描sdcard中的音乐文件,并加载到ListView中?