Rocky_ruan 2021-03-15 17:13 采纳率: 14.3%
浏览 383
已采纳

FileProvider配的路径是干什么用的,<root-path>路径干什么的

String path=Environment.getExternalStorageDirectory().toString()+File.separator+"forpermission"+File.separator+fileName+".jpg";
File imageFile=new File(path);
Uri uri= FileProvider.getUriForFile(ThirdActivity.this,"com.ruan.testw.my_provider",imageFile);

这里传入的路径是sd卡下的forpermission文件夹下

<provider
    android:name="androidx.core.content.FileProvider"
    android:authorities="com.ruan.testw.my_provider"
    android:exported="false"
    android:grantUriPermissions="true">
    <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/file_paths" />
</provider>
<paths>
 
    <external-path
        name="camera_photo"
        path="forpermission"/>
</paths>

这个传入的路径也是这个文件夹下的不会报错

如果我传入其他文件夹或报错但是我要是配置了root-path路径就不会报错

<paths>
    <root-path
        name="root"
        path=""/>
    <external-path
        name="camera_photo"
        path="aa/forpermission"/>
</paths>
  • 写回答

1条回答 默认 最新

  • 8号店长 2021-03-15 17:18
    关注
    <root-path/> 代表设备的根目录new File("/");//很少用
    //app内部存储
    <files-path/> 代表context.getFilesDir()
    <cache-path/> 代表context.getCacheDir()
    //sd卡存储
    <external-path/> 代表Environment.getExternalStorageDirectory()
    <external-files-path>代表context.getExternalFilesDirs()
    <external-cache-path>代表getExternalCacheDirs()
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?