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

部分用戶反饋分享功能用不了,而後仔細檢查了一下,看着代碼,愣是沒看出毛病來,而後查了一下,才發現很多小夥伴也出現了這個問題,緣由是Android7.0以上系統對文件的權限作了某些安全方面的限制,也就是直接經過Uri.fromFile這個方式將path抓緩存uri是不能用了。緩存

解決問題的大概思路就是,配置一個本APP對應的專門的路徑,而後每次須要分享文件的時候,拷貝一份放到這個目錄下,而後經過FileProvider來轉換成uri,便可正常分享(後來發現,用這個方法分享到TIM的時候,會出現文件找不到的錯誤,QQ和微信則沒問題)。安全

 

詳細操做就不細說了,看大神門的博客:微信

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

 

除此以外,我發現了另一個問題,徹底不須要上面那麼複雜的操做,只須要在分享以前執行下面一段代碼便可(具體什麼原理,並無去細看,但親測能夠分享到qq、tim、微信):ui

StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
        StrictMode.setVmPolicy(builder.build());
        builder.detectFileUriExposure();
相關文章
相關標籤/搜索