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

      

  • 相关阅读:
    【poj 1087 a plug for UNIX】
    收集 数据库的awr数据,生成报告
    power desinger 学习笔记三<批量执行sql语句>
    power desinger 学习笔记<二>
    power desinger 学习笔记<一>
    oracle中不曾熟悉的 to_char、to_number(未完待续)
    oracle 报错 :ORA-04052、 ORA-00604、 ORA-03106、 ORA-02063
    谈谈oracle中的临时表
    Oracle-在线重定义操作文档
    分享最近和同事处理的 解析XML的相关问题
  • 原文地址:https://www.cnblogs.com/tanlon/p/2169302.html
Copyright © 2011-2022 走看看