在Android 11中,应用程序卸载后会自动删除其数据和文件。但是,我们可以使用Storage Access Framework(SAF)来将文件持久化。这是一种允许用户选择自己的存储位置的框架。
以下是一个示例代码片段,可以使用SAF将文件存储在永久存储位置:
final int CREATE_REQUEST_CODE = 10;
File file = new File(Environment.getExternalStorageDirectory(), "example.txt");
Uri uri = FileProvider.getUriForFile(this, "com.example.fileprovider", file);
Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TITLE, "example.txt");
intent.putExtra(DocumentsContract.EXTRA_INITIAL_URI, uri);
startActivityForResult(intent, CREATE_REQUEST_CODE);
请注意,此示例需要在应用程序中启用文件提供程序:
然后需要创建一个XML文件,它定义了您的文件提供程序将提供哪些路径:
使用SAF,用户将选择文档存储位置,使其持久化在用户设备上。即使应用程序被卸载,文件仍然可以在设