Android通知MediaScanner扫描指定的文件

来源:互联网 发布:有什么金融软件 编辑:程序博客网 时间:2024/06/05 20:45

在相机软件的开发中,由于,每次拍摄后,我们会在内部存储中保存照片数据,通常来说,用户希望的是,拍照完成后打开图片浏览器就可以对刚刚拍摄的照片进行查看。但是,由于Android文件系统扫描机制,通常,只会在开机的时候对文件进行扫描(MediaScanner主要用来做这件事情),特别是对于媒体文件,在扫描后生成一个媒体文件的索引,便于图片浏览器等类似的软件可以快速的获取系统中的图片等媒体软件。于是乎,在应用程序运行过程中在内部存储中写入文件后,系统并不知道该文件或者该目录已经存在。所以,导致用户使用图片浏览器的时候不能找到刚刚拍摄的图片。或者使用电脑查看时,不能看到创建的文件夹,当然图片也就找不到了。那么如何解决这个问题呢:

Android给开发者提供了一组API,用于用户将特定的媒体文件告知Android系统的MediaScanner(媒体扫描器)进行对指定文件的扫描。让系统发现该文件,以便用户可以快速的读取和查看。

1.创建一个MediaScannerConnectionClient 从名字就可以看出来,他代表了一个和MediaScanner通信的一个客户端。

MediaScannerConnectionClient client = new MediaScannerConnectionClient() {                                        @Override                    public void onScanCompleted(String path, Uri uri) {  //当client和MediaScaner扫描完成后  进行关闭我们的连接                        // TODO Auto-generated method stub                        mediaScannerConnection.disconnect();                     }                                        @Override                    public void onMediaScannerConnected() {   //当client和MediaScanner完成链接后,就开始进行扫描。                        // TODO Auto-generated method stub                        mediaScannerConnection.scanFile(path, null);                        mediaScannerConnection.scanFile(path+fileName, null);                    }                };

2.进行一个MediaScanner的连接

 mediaScannerConnection = new MediaScannerConnection(MainActivity.this, client );                mediaScannerConnection.connect();  

当连接成功后就会调用我们注册的client的函数。


0 0
原创粉丝点击