Android 自动刷新自定义相册

在camera开发过程中,发现若将camera拍摄的相片存放至自定义相册时,有时不能及时的在相册中找到对应相片。不同的设备对于自定义相册的更新时机不同。有的手机,需要重启才会更新,有的则是及时。因此,为了适配,不论什么机型,强制更新是必要的。

网上查找,多有两种方案。一是发送系统广播,一是使用MediaScannerConnection对象。

对于广播而言,其局限性在于,android4.x之后,为了安全性考虑,app不能再发送系统广播。相比而言MediaScannerConnection便更为通用,该对象自api level1便存在。

现将代码记录如下:

package com.breakloop.common;

import android.content.Context;
import android.media.MediaScannerConnection;
import android.net.Uri;
import android.webkit.MimeTypeMap;

public class LFISMediaScanner {
    private static MediaScannerConnection mScanner=null;

    public static void updateMedia(Context fContext, String fPath){
        MimeTypeMap tMimeTypeMap=MimeTypeMap.getSingleton();
        String tExtension=fPath.substring(fPath.lastIndexOf(".")+1);
        String tType=tMimeTypeMap.getMimeTypeFromExtension(tExtension);

        if (mScanner == null) {
            MediaScannerConnection connection = new MediaScannerConnection(fContext,
                    new MediaScannerConnection.MediaScannerConnectionClient() {
                        public void onMediaScannerConnected() {
                            mScanner.scanFile(fPath, tType);
                        }

                        public void onScanCompleted(String path1, Uri uri) {
                            if (path1.equals(fPath)) {
                                mScanner.disconnect();
                                mScanner = null;
                            }
                        }
                    });
            try {
                connection.connect();
            } catch (Exception e) {
                e.printStackTrace();
            }
            mScanner = connection;
        }else {
            if(!mScanner.isConnected()){
                mScanner.connect();
            }
            mScanner.scanFile(fPath,tType);
        }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值