如何在Android 11保存文件到手机

一、流程

下面是实现在Android 11保存文件到手机的整个流程:

步骤 操作
1 请求读写权限
2 创建文件
3 将数据写入文件

二、具体操作

1. 请求读写权限

在AndroidManifest.xml文件中添加以下权限:

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

在Activity中添加以下代码请求权限:

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

2. 创建文件

在Android 11中,我们不能直接在外部存储根目录创建文件,需要通过MediaStore来保存文件。以下是创建文件的代码:

ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.DISPLAY_NAME, "image.jpg");
values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
values.put(MediaStore.Images.Media.RELATIVE_PATH, Environment.DIRECTORY_PICTURES);

Uri imageUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);

3. 将数据写入文件

最后一步是将数据写入创建的文件,可以使用FileOutputStream:

OutputStream os = getContentResolver().openOutputStream(imageUri);
os.write(data);
os.close();

其中data是要写入文件的字节数组。

状态图

stateDiagram
    [*] --> 请求权限
    请求权限 --> 创建文件
    创建文件 --> 写入数据
    写入数据 --> [*]

通过以上步骤,你就可以在Android 11保存文件到手机了。希望这篇教程对你有帮助!如果有任何疑问,欢迎随时询问。