android7.0,修改了对私有存储的限制,导致在获取资源的时候,不能通过Uri.fromFile(..)来获取uri了,但是在写入数据的时候是可以通过Uri.fromFile(..)来获取uri的,android 官网给出的解决办法是通过FileProvider来解决这一问题,我们需要在AndroidManifest.xml 配制provider节点。
<!-- 广告--> <provider android:name="android.support.v4.content.FileProvider" android:authorities="${applicationId}.fileprovider" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/gdt_file_path" /> </provider>
因为我接入的广点通和pc蛋蛋都有下载功能,provider冲突
解决的方法就是
provider不变,在xml的gdt_file_path中,加入两个各自的路径
<paths xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 这个下载路径也不可以修改,必须为GDTDOWNLOAD --> <!--广点通--> <external-path name="gdt_sdk_download_path" path="GDTDOWNLOAD" /> <!--pc蛋蛋--> <!--<external-path name="download" path=""/>--> <files-path name="pceggs" path="downloads"/> <!-- <files-path name="downloads" path="downloads"/>--> <root-path name="root_path" path="."/> </paths>
xml放在