FileProvider适配问题

在app的build.gradle文件下添加applicationId

defaultConfig {
    applicationId "你的包名"
    ...
}

在资源文件夹res下新建xml文件夹,并在xml文件夹新建file_paths.xml,文件内容如下



    
    
    
    
    
    
    
    
    
    
    
    
    
    

name:名称标志字符串,不可以同名!
path:文件夹“相对路径”,完整路径取决于当前的标签类型。

标签 路径
…….. * 代表 当前文件夹及其子文件夹
file-path 物理路径为Context.getFilesDir() + /path/*
cache-path 物理路径为Context.getCacheDir() + /path/*
external-path 物理路径为Environment.getExternalStorageDirectory() + /path/*
external-files-path 物理路径为Context.getExternalFilesDir(String) + /path/*
external-cache-path 物理路径为Context.getExternalCacheDir() + /path/*
root-path 物理路径相当于 /path/*

AndroidManifest.xml添加如下代码


    

举个例子:当使用系统相机时

File outFile = new File(outDir, System.currentTimeMillis() + ".jpg");
// 把文件地址转换成Uri格式
Uri uri = null;
if (Build.VERSION.SDK_INT >= 24) {
    uri = FileProvider.getUriForFile(getApplicationContext(), "你的包名.fileprovider", outFile);
} else {
     uri = Uri.fromFile(outFile);
}
//LogUtils.d("AbsolutePath", "getAbsolutePath=" + outFile.getAbsolutePath());
// 设置系统相机拍摄照片完成后图片文件的存放地址
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
// 此值在最低质量最小文件尺寸时是0,在最高质量最大文件尺寸时是1
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 0);
startActivityForResult(intent, Config.FOR_CAMERA_PIC);

最后不要忘记权限AndroidManifest.xml

    
    
    
    

此外还需要考虑到6.0的动态权限问题

你可能感兴趣的:(FileProvider适配问题)