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实现链表
    事件
    JQ操作DOM
    JQuery选择器
    AJAX
    file
    表单
    DOM
    window&navigator&screen&location
  • 原文地址:https://www.cnblogs.com/tanlon/p/2169302.html
Copyright © 2011-2022 走看看