Android分享文件兼容7.0以上系统

部分用户反馈分享功能用不了,然后仔细检查了一下,看着代码,愣是没看出毛病来,然后查了一下,才发现不少小伙伴也出现了这个问题,原因是Android7.0以上系统对文件的权限做了某些安全方面的限制,也就是直接通过Uri.fromFile这个方式将path抓缓存uri是不能用了。

解决问题的大概思路就是,配置一个本APP对应的专门的路径,然后每次需要分享文件的时候,拷贝一份放到这个目录下,然后通过FileProvider来转换成uri,即可正常分享(后来发现,用这个方法分享到TIM的时候,会出现文件找不到的错误,QQ和微信则没问题)。

详细操作就不细说了,看大神门的博客:

http://blog.csdn.net/leilifengxingmw/article/details/57405908

除此之外,我发现了另外一个问题,完全不需要上面那么复杂的操作,只需要在分享之前执行下面一段代码即可(具体什么原理,并没有去细看,但亲测可以分享到qq、tim、微信):

 StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
        StrictMode.setVmPolicy(builder.build());
        builder.detectFileUriExposure();

猜你喜欢

转载自my.oschina.net/u/1462828/blog/1629580