android7.0
在AndroidManifest.xml中添加
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="@string/contacts_file_provider_authority"
android:grantUriPermissions="true"
android:exported="false">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
在res目录下创建xml/file_paths文件,只有在file_paths中配置的目录下的文件才可以在应用间共享
<?xml version="1.0" encoding="utf-8"?>
<paths>
<external-path name="external-path" path="apk/" />
<cache-path name="cache-path" path="." />
<files-path name="files-path" path="." />
</paths>
对应关系:
external-path 对应 Environment.getExternalStorageDirectory()
cache-path对应 getCacheDir()
files-path对应 getFilesDir()
path指定对应目录下的子目录, path="." 表示该目录下所有子目录
private static String pathForTemp(Context context) {
final File dir = context.getCacheDir();
dir.mkdirs();
final File f = new File(dir, ”fileName”);
return f.getAbsolutePath();
}
public static Uri generateTempUri(Context context) {
final String fileProviderAuthority = context.getResources().getString(
R.string.contacts_file_provider_authority);
return FileProvider.getUriForFile(context, fileProviderAuthority,
new File(pathForTemp(context)));
}