android 7.0(24) 兼容
-
build.gradle
<!--版本更新所要用到的 fileProvider 用于兼容7.0通知栏的安装--> <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/file_provider_paths"/> <!--配置中的authorities按照江湖规矩一般加上包名,${applicationId}是获取当前项目的包名,--> <!--前提是defaultConfig{}闭包中要有applicationId属性。--> <!--defaultConfig {--> <!--applicationId "com.chaychan.demo"--> <!--}--> </provider>
java
Uri apkUri = FileProvider.getUriForFile(context, "com.wongxd.carinsurance" + ".fileprovider", file);
file_provider_paths.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<paths>
<external-path path="" name="myFile"></external-path>
<!--上述代码中path=”“,是有特殊意义的,它代码根目录,也就是说你可以向其它的应用共享根目录及其子目录下任何一个 文件了,
如果你将path设为path=”pictures”, 那么它代表着根目录下的pictures目录(eg:/storage/emulated/0/pictures),
如果你向其它应用分享pictures目录范围之外的文件是不行的。-->
</paths>
</resources>