Android 11 文件管理实现

简介

在 Android 11 中,文件管理功能得到了改进和增强。本文将向您介绍如何实现 Android 11 文件管理功能,包括权限处理、文件选择和文件操作等。

流程图

flowchart TD
A[开始]-->B[请求文件访问权限]
B-->C[选择文件]
C-->D[处理文件操作]
D-->E[结束]

步骤

1. 请求文件访问权限

在 Android 11 中,需要请求适当的权限才能访问用户的文件。您需要在 AndroidManifest.xml 文件中添加以下权限:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

然后在代码中使用以下代码请求权限:

if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
    ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, REQUEST_CODE);
}

2. 选择文件

在 Android 11 中,可以使用系统提供的文件选择器来选择文件。您可以使用以下代码启动文件选择器:

Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.setType("*/*");
intent.addCategory(Intent.CATEGORY_OPENABLE);
startActivityForResult(intent, REQUEST_CODE);

onActivityResult 方法中,您可以获取用户选择的文件 URI:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
        Uri fileUri = data.getData();
        // 处理文件
    }
}

3. 处理文件操作

一旦获取了文件 URI,您可以执行各种文件操作,如读取、写入或删除文件。以下是几个常见的文件操作及其代码示例:

读取文件
try {
    InputStream inputStream = getContentResolver().openInputStream(fileUri);
    // 读取文件内容
    inputStream.close();
} catch (IOException e) {
    e.printStackTrace();
}
写入文件
try {
    OutputStream outputStream = getContentResolver().openOutputStream(fileUri);
    // 写入文件内容
    outputStream.close();
} catch (IOException e) {
    e.printStackTrace();
}
删除文件
getContentResolver().delete(fileUri, null, null);

序列图

sequenceDiagram
    participant 用户
    participant 应用
    用户->>应用: 启动应用
    应用->>用户: 请求文件访问权限
    用户->>应用: 授权访问权限
    应用->>用户: 显示文件选择器
    用户->>应用: 选择文件
    应用->>用户: 处理文件操作

以上就是实现 Android 11 文件管理的基本步骤和代码示例。通过请求文件访问权限、选择文件和执行文件操作,您可以轻松实现文件管理功能。祝您实现Android 11文件管理的成功!