android 下载保存视频到本地相册刷新 机型适配问题

android 下载保存视频到本地相册刷新 机型适配问题

android 下载保存视频到本地相册刷新问题
一般我们保存视频文件到本地
使用一下方法扫描到相册,通知相册更新

 MediaScannerConnection.scanFile(context, new String[]{destFile.getPath()}, null, null);

或者通过全局广播的方式,建议使用以上单个文件扫描通知即可。

但是发现vivo 手机只能在照相机目录下才能更新 所以我们需要单独处理vivo手机

//在picture目录下新建一个文件夹
//手机存储/Pictrues 大部分手机通用
    private static final String ROOT_PATH =
            Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) + "/app名字目录";

    // 手机存储/DCIM/Camera下   vivo 小米等手机通用  兼容大部分
    private static final String ROOT_CAMERA_PATH = Environment.getExternalStorageDirectory() + File.separator + "DCIM" + File.separator + "Camera";
 //手机存储/DCIM  部分手机没有Camera  vivo y66等
    private static final String ROOT_CAMERA_PATH_BASE = Environment.getExternalStorageDirectory() + File.separator + "DCIM";

单独处理vivo手机保存到 “手机储存/DCIM/Camera ”路径下
测试发现vivo X9手机 路径为“手机储存/相机

    //    手机存储/相机下 vivo X9
    private static final String ROOT_CAMERA_PATH_1 = Environment.getExternalStorageDirectory() + File.separator + "相机";

以下是根据机型判断处理保存路径

    String rootPath = ROOT_PATH;
        String manufacturer = Build.MANUFACTURER;
        if (manufacturer != null && manufacturer.length() > 0) {
            String phoneType = manufacturer.toLowerCase();
            String systemModel = android.os.Build.MODEL;
            Log.d(TAG, "saveFileToAlbum phone_type: " + phoneType + " systemModel:" + systemModel);
            switch (phoneType) {
                case "huawei":
                    break;
                case "vivo":
                    if ("vivo X9".equals(systemModel)) {
                        rootPath = ROOT_CAMERA_PATH_1;
                    } else if ("vivo y66".equals(systemModel) || "vivo Y66".equals(systemModel))else {
                        rootPath = ROOT_CAMERA_PATH_BASE ;
                    }else{ 
                        rootPath = ROOT_CAMERA_PATH
                    }
                    break;
                case "xiaomi":
                    rootPath =ROOT_CAMERA_PATH ;
                    break;
            }
        }

其他机型等待测试 可一一对应处理。
vivo等手机为了兼容性处理“手机储存/DCIM/Camera ”与“手机储存/相机 ”都复制一份比较保险
手机储存/DCIM/Camera ” 可以兼容大部分手机
具体保存方法这里就不贴代码了,就是根据缓存本地的文件copy到相关目录即可

保存完成后 使用
MediaScannerConnection 进行操作。

不同于 MediaStore.Image.Media 和广播的方式,使用 MediaScannerConnection 可以指定文件路径,支持刷新完成的回调。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值