Android通知MediaScanner扫描指定的文件

在相机软件的开发中,由于,每次拍摄后,我们会在内部存储中保存照片数据,通常来说,用户希望的是,拍照完成后打开图片浏览器就可以对刚刚拍摄的照片进行查看。但是,由于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的函数。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值