美文网首页Android
android:应用内下载gif到本地后,vivo手机打不开报错

android:应用内下载gif到本地后,vivo手机打不开报错

作者: CnPeng | 来源:发表于2017-10-18 20:40 被阅读3次

    一、问题现象:

    我司应用内部具有文件上传和下载功能,A手机(任意品牌手机)上传 gif 动图文件到APP后,B手机(Vivo手机)下载到本地,在B手机打开的时候会提示 “ gif 过大,只显示第一帧 ”。然后,实际上这个gif 文件可能只有几十KB。

    在其他品牌手机中下载gif 到本地后并无类似情况。在Vivo手机上通过路径找到下载的这个 GIF 文件,手动打开时依旧提示上述错误。but,将该 GIF文件改名之后就能正常打开了。

    二、问题原因及解决方案

    (1)、问题原因

    问题原因是,将文件下载到本地之后,未通知系统图库去刷新,所以无法直接使用Vivo的图库去打开该文件。(其他品牌手机无类似情况)

    (2)、解决方案

    将文件下载到本地之后,手动发送广播刷新图库:

     /**
         * 发送广播刷新相册/图库,从而让用户能看到新增的图片(不刷新看不到)
         *
         * @param context 上下文,用来发送广播
         * @param file    新增的文件,用来获取其URI,该URI会作为广播携带的intent 的Data
         */
        public static void updateGallery(Context context, File file) {
            Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
            Uri uri = Uri.fromFile(file);
            intent.setData(uri);
            context.sendBroadcast(intent);
        }
    

    另,应用内实现截屏操作时也是需要通过发送该广播去通知图库刷新,否则虽然截图成功,但是图库中可能会看不到截图。具体代码参考:Android:应用内部截屏的实现

    相关文章

      网友评论

        本文标题:android:应用内下载gif到本地后,vivo手机打不开报错

        本文链接:https://www.haomeiwen.com/subject/qwoeuxtx.html