zoukankan      html  css  js  c++  java
  • [原]Android 手动扫描音乐文件

    最近做一个关于手动扫描指定文件夹下面的媒体文件到系统媒体数据库中的功能,在网上找了很多大多都是发送一个广播:

    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");
    }
    }
    }
    }
    }

      

  • 相关阅读:
    js模版引擎Mustache介绍
    springMVC学习篇
    MyBatis参数传入集合之foreach动态sql
    eclipse注册码生成,在eclipse3.3.x上测试可用
    B
    jAVA笔记二
    J 分班(class)(NYIST 2019年校赛)
    H 幻方变换(puzzle)(NYIST 2019年校赛)
    E 旅游方案(travel)(南阳理工学院2019年校赛)
    ACM Computer Factory(网络流 POJ 3436,这可是我第一次写网络流)
  • 原文地址:https://www.cnblogs.com/tanlon/p/2169302.html
Copyright © 2011-2022 走看看