要想在Android studio中使用FileProvider,需要在AndroidManifest.xml文件中声明FileProvider并添加必要的provider信息。示例如下:
在application标签下添加以下代码:
其中,android:name指定FileProvider的类名,android:authorities设定FileProvider的标识,必须和provider_paths.xml文件中的path声明一致,android:exported和android:grantUriPermissions用于控制provider的访问权限。
在res/xml目录下,新建provider_paths.xml文件,此文件用于声明FileProvider的path信息,示例如下:
其中,name属性指定FileProvider的名称,可以自定义,path属性指定FileProvider要管理的根目录。上述代码中的意思是,指定FileProvider管理应用的根目录,即"/storage/emulated/0/Android/data/
完成上述步骤后,即可在应用中使用FileProvider了。使用方法如下:
File file = new File(Environment.getExternalStorageDirectory(), "demo.txt");
Uri uri = FileProvider.getUriForFile(context, context.getPackageName() + ".fileprovider", file);
其中,第一个参数context为当前上下文,第二个参数为FileProvider的标识,第三个参数为FileProvider要管理的文件。使用FileProvider后,应用即可安全地向其他应用提供自己的文件,同时保证了文件的安全性。