MediaScannerConnection 刷新媒体库

原创 2018年04月16日 19:01:42

MediaScannerConnection

MediaScannerConnection 作用是为应用提供一个媒体扫描服务,当有新创建或者下载的文件时,会从该文件读取元数据并将该文件添加到媒体中去。

当我们添加一个文件的时候,我们需要刷新媒体库才能立即找得到添加文件,MediaScannerConnection可以为我们解决这一问题。

那么我们就来看看怎么使用MediaScannerConnection 去刷新媒体库。

1. 构造方法

MediaScannerConnection(Context context, MediaScannerConnection.MediaScannerConnectionClient client)

//MediaScannerConnectionClient 是媒体扫描服务在MediaScannerConnection类中返回新添加文件的 uri  和 path
new MediaScannerConnection(this,
                new MediaScannerConnection.MediaScannerConnectionClient() {
            @Override
            public void onMediaScannerConnected() {
            // MediaScanner service 创建后回调
            }

            @Override
            public void onScanCompleted(String path, Uri uri) {
              // 当MediaScanner完成文件扫描后回调
            }
        });

2.连接扫描服务

connect()//Initiates a connection to the media scanner service

3.扫描文件(scanFile)

<!--path 文件绝对路径-->
void scanFile (String path, String mimeType)

void scanFile (Context context, String[] paths,  String[] mimeTypes,MediaScannerConnection.OnScanCompletedListener callback)

通过上面两种方式去扫描文件,
第一种方式通过,如果在构造防范中添加了监听回调,会在其回调中得到其uri;
第二种方式,可以选择添加扫描完成监听获取扫描文件的uri 。

4.断开扫描服务

void disconnect ()
Releases the connection to the media scanner service.

注意:以下两个方法 是 ServiceConnection 接口的方法,不要调用。

onServiceConnected(ComponentName className, IBinder service)

onServiceDisconnected(ComponentName className)

通过上述方法就能在添加文件后,扫描添加到媒体库,就会立刻出现在文件夹中了。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Hana_one/article/details/79964749

android 媒体库数据更新解决办法总结

在项目中,我们经常要创建个自己的目录,里面存放一些图片啊文件之类,比如:我在SD卡中刚创建了一个文件夹A,里面放入了照片B,那么,这个时候我立马去Gallery里面查看这个目录里的照片,那么,我是无法...
  • sherbin_z
  • sherbin_z
  • 2014年11月14日 10:06
  • 2492

Android MediaScanner 多媒体扫描流程

一、扫描方式 在4.4平台之前可以通过两种方式来扫描多媒体文件: 1、MediaScannerConnection.scanFile()方法,    MediaScannerConnection....
  • air798
  • air798
  • 2016年05月15日 20:28
  • 5605

Android通知MediaScanner扫描指定的文件

在相机软件的开发中,由于,每次拍摄后,我们
  • wj2030
  • wj2030
  • 2014年11月19日 22:28
  • 2991

调用MediaScannerConnection 发生内存泄露的解决方法

调用MediaScannerConnection发起扫描时经常会发生内存泄露,例如: E ActivityThread: Activity FolderListActivity has leaked ...
  • ameyume
  • ameyume
  • 2016年09月06日 11:19
  • 3417

MediaScanner扫描文件和文件目录

MediaScanner主要功能:把上层修改写入到数据库。在android中使用轻量级数据库sqlite来存储数据,使用sql语句可查看数据库中的内容。 1. 扫描文件 在对文件进行重命名、删...
  • minmin1027
  • minmin1027
  • 2015年11月25日 10:16
  • 1635

Android中,SD卡上的媒体文件(图片、视频)的改变与通知

MediaProvider相当于一个数据中心,SD卡上所有的数据在这里都有记录,而Gallery的什用就是展示和操作这个数据中心,每次用户启动Gallery时,Gallery只是读取MediaProv...
  • a345017062
  • a345017062
  • 2011年04月13日 19:39
  • 11563

源码分析MediaScannerConnection扫描文件

我们在平时使用各种APP时,浏览到一些喜欢的图片经常会选择保存下来,有些软件保存下来是在自己特有的文件夹下面,有的是直接保存在系统的图片文件下,甚至有些图片我们无法在系统的图库中找到,我们或许会去翻手...
  • freelander_j
  • freelander_j
  • 2016年11月29日 11:23
  • 811

解决 android 在sd卡新建文件后需要重启才能找到

最近遇到android在sd卡中新建文件,但是插到电脑上找不到的情况,Google了以下记录以作备忘。使用这个函数就可以了:MediaScannerConnection.scanFile(Contex...
  • lmw21848
  • lmw21848
  • 2016年08月24日 10:14
  • 1751

Android MediaProvider,MediaScanner媒体文件扫描源码解析

关于媒体文件扫描,我们需要弄明白两个问题: 1.什么时候开启媒体文件扫描 2.如何解析媒体文件(音频,视频,图片)信息插入到数据库中,对应code流程我们现在音乐,视频播放器,图库等应用关于音视频...
  • King1425
  • King1425
  • 2017年04月19日 10:03
  • 1745

Android中扫描多媒体文件操作详解

Android中的多媒体文件扫描机制 Android提供了一个很棒的程序来处理将多媒体文件加入的媒体库中。这个程序就是MediaProvider,现在我们简单看以下这个程序。首先看一下它的Recei...
  • u013749540
  • u013749540
  • 2017年10月10日 10:18
  • 268
收藏助手
不良信息举报
您举报文章:MediaScannerConnection 刷新媒体库
举报原因:
原因补充:

(最多只允许输入30个字)