从Android 11开始,Google限制了对文件系统的访问。当应用程序访问文件系统时,Android会默认禁用对整个文件系统的访问。所有Android应用程序都必须使用Content Uri进行文件系统访问。这使得在Android 11或12中使用文件URI变得困难。
以下是以Kotlin和Java两种语言提供的使用FileProvider获取文件URI的示例代码:
在AndroidManifest.xml文件中添加以下代码:
在res/xml目录下创建名为file_path的file_paths.xml文件,包含以下代码:
在需要获取文件URI的位置添加以下代码: Kotlin:
val file = File("your file path here")
val uri = FileProvider.getUriForFile(this, "com.example.myapp.fileprovider", file)
Java:
File file = new File("your file path here");
Uri uri = FileProvider.getUriForFile(this, "com.example.myapp.fileprovider", file);