Android获取文件读写权限教程
1. 整体流程
flowchart TD
A[创建权限请求] --> B[检查权限状态]
B --> C{是否已获取权限}
C -->|是| D[开始文件读写操作]
C -->|否| E[请求权限]
E --> F[处理权限请求结果]
F --> D
2. 每一步操作
1. 创建权限请求
在AndroidManifest.xml文件中添加以下权限:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
2. 检查权限状态
在Activity中添加以下代码:
// 检查读写权限
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
// 未获取读权限
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, REQUEST_CODE_READ);
} else {
// 已获取读权限
// 继续执行文件读取操作
readFile();
}
3. 请求权限
在Activity中添加以下代码:
// 请求读权限
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, REQUEST_CODE_READ);
4. 处理权限请求结果
在Activity中重写onRequestPermissionsResult方法,并添加以下代码:
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == REQUEST_CODE_READ) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// 用户同意了读权限
// 继续执行文件读取操作
readFile();
} else {
// 用户拒绝了权限请求
// 提示用户打开权限
}
}
}
5. 开始文件读写操作
添加读取文件的代码:
// 读取文件操作
File file = new File(Environment.getExternalStorageDirectory(), "example.txt");
try {
BufferedReader br = new BufferedReader(new FileReader(file));
StringBuilder text = new StringBuilder();
String line;
while ((line = br.readLine()) != null) {
text.append(line);
text.append('\n');
}
br.close();
// 在TextView中显示读取的内容
textView.setText(text.toString());
} catch (IOException e) {
e.printStackTrace();
}
关系图
erDiagram
PERMISSION_REQUEST --> PERMISSION_GRANTED : 用户授权
PERMISSION_GRANTED --> FILE_OPERATION : 开始文件操作
PERMISSION_REQUEST --> PERMISSION_DENIED : 用户拒绝
PERMISSION_DENIED --> PERMISSION_SETTING : 提示打开权限设置
通过以上步骤,你就可以成功获取Android文件读写权限并进行相关操作了。祝你学习顺利!