如何在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保存文件到手机了。希望这篇教程对你有帮助!如果有任何疑问,欢迎随时询问。