[原]Android 手动扫描音乐文件
2011-09-06 23:19
519 查看
最近做一个关于手动扫描指定文件夹下面的媒体文件到系统媒体数据库中的功能,在网上找了很多大多都是发送一个广播:
通知系统媒体自动扫描,不知道是因为权限的问题还是什么原因,反正试了n久就是没用,就是扫描不到系统数据库中去。
于是自己去弄了一个方法,实现了功能,方法如下:
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory())));
通知系统媒体自动扫描,不知道是因为权限的问题还是什么原因,反正试了n久就是没用,就是扫描不到系统数据库中去。
于是自己去弄了一个方法,实现了功能,方法如下:
//实例化一个MediaScannerConnection
MediaScannerConnection mediaScannerConnection=new MediaScannerConnection(ESearchManager.this, client);
//获取连接
mediaScannerConnection.connect(); //扫描指定路径下的文件到系统数据库中 scanfile(new File(path)); //实例化MediaScannerConnectionClient接口 MediaScannerConnectionClient client=new MediaScannerConnectionClient() { public void onScanCompleted(String path, Uri uri) { // TODO Auto-generated method stub mediaScannerConnection.disconnect(); Log.d("tag", "onScanCompleted"); } public void onMediaScannerConnected() { // TODO Auto-generated method stub Log.d("tag", "onMediaScannerConnected"); } }; //将指定路径下的文件列出来,更新到媒体数据库 private void scanfile(File f){ if(f.isDirectory()){ File[] files=f.listFiles();//将指定文件夹下面的文件全部列出来 if(files!=null){ for(int i=0;i<files.length;i++){ if(files[i].isDirectory()) scanfile(files[i]); else { //调用mediaScannerConnection.scanFile()方法,更新指定类型的文件到数据库中
mediaScannerConnection.scanFile(files[i].getAbsolutePath(), "audio/mpeg"); } } } } }
相关文章推荐
- android 扫描文件(sdcard添加新的音乐文件时候后,可扫描到)
- 我的Android进阶之旅------>Android使用正则表达式匹配扫描指定目录下的所有媒体文件(音乐、图像、视频文件)
- Android 扫描SDCard上的音乐文件以及监听扫描事件
- Android扫描本地音乐文件开发案例分享
- Android 扫描SDCard上的音乐文件以及监听扫描事件
- Android 扫描SDCard上的音乐文件以及监听扫描事件
- Android 扫描SDCard上的音乐文件以及监听扫描事件
- Android 扫描音乐文件、两种方式获取文件最新修改时间
- Android 获取音乐文件的信息
- Android开发----音乐播放器(扫描本地音乐)
- cocos2d-x android.mk文件中添加源文件,不需要每个cpp都去手动去包含一次
- Android文件扫描
- android操作sdcard中的多媒体文件(二)——音乐列表的更新
- android操作sdcard中的多媒体文件(一)——音乐列表的制作
- Android-01:扫描SD卡以<.xxx>结尾的文件
- Android扫描SD卡中的文件
- Android系统扫描音频文件详解
- cocos2d-x避免手动修改android.mk文件来编译
- android开发 音乐,文件下载
- Android获取音乐文件的信息