在Android 11中,应用之间可以通过使用ContentResolver
和Intent
来共享文件。以下是一个示例代码,演示了如何在应用之间共享文件。
// 获取文件的Uri
Uri fileUri = Uri.parse("content://com.example.myapp/files/myfile.txt");
// 创建发送Intent
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("text/plain");
sendIntent.putExtra(Intent.EXTRA_STREAM, fileUri);
// 设置Intent的标志,允许接收应用访问文件
sendIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
// 启动发送Intent
startActivity(Intent.createChooser(sendIntent, "分享文件"));
在接收应用的AndroidManifest.xml
文件中添加以下权限和文件提供器配置:
创建res/xml/file_paths.xml
文件,并添加以下内容:
然后,在接收应用的代码中,使用以下代码接收文件:
Uri receivedUri = getIntent().getParcelableExtra(Intent.EXTRA_STREAM);
if (receivedUri != null) {
// 处理接收到的文件
}
以上代码示例了如何在Android 11中实现应用之间的文件共享。发送应用通过将文件Uri添加到Intent
中,并设置FLAG_GRANT_READ_URI_PERMISSION
标志来授予接收应用访问文件的权限。接收应用通过从Intent
中获取Uri来接收文件,并进行相应的处理。