那么我们就来详细讲解一下“Android申请相机权限和读写权限实例”的完整攻略。
一、为什么需要申请权限
在Android系统上,应用程序必须获得许可才能访问用户的敏感信息和系统资源。当我们需要使用摄像头或者读写文件时,即需要使用到权限。
二、如何申请相机权限和读写权限
2.1 Android相机权限申请示例
2.1.1 添加权限
在项目的AndroidManifest.xml
中,添加以下代码:
<uses-permission android:name="android.permission.CAMERA" />
2.1.2 Camera权限申请
在我们需要使用相机的地方,我们需要获取Camera对象之前先申请相机权限,示例代码:
if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, CAMERA_PERMISSION_REQUEST_CODE);
return;
} else {
openCamera();
}
上面的代码中,如果没有相机权限则会弹出授权框让用户选择是否授权,选择后会调用onRequestPermissionsResult
方法,我们需要在该方法中处理授权结果,示例代码:
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if (requestCode == CAMERA_PERMISSION_REQUEST_CODE) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
openCamera();
} else {
Toast.makeText(this, "请打开相机权限", Toast.LENGTH_SHORT).show();
}
return;
}
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
2.1.3 打开相机
当我们申请到相机权限后,就可以打开相机了,示例代码:
private void openCamera() {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, CAMERA_REQUEST_CODE);
}
2.2 Android读写权限申请示例
2.2.1 添加权限
在项目的AndroidManifest.xml
中,添加以下代码:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
2.2.2 读写权限申请
在我们需要读取或者写入文件的地方,我们需要读写权限,示例代码:
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, WRITE_EXTERNAL_STORAGE_PERMISSION_REQUEST_CODE);
return;
} else {
readFile();
}
与相机权限申请类似,当我们获得读写权限后就可以进行读写文件操作了,示例代码:
private void readFile() {
try {
File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/test.txt");
BufferedReader reader = new BufferedReader(new FileReader(file));
String content = "";
String line = reader.readLine();
while (line != null) {
content += line;
line = reader.readLine();
}
reader.close();
textView.setText(content);
} catch (IOException e) {
e.printStackTrace();
textView.setText("读取失败");
}
}
三、总结
以上就是“Android申请相机权限和读写权限实例”的完整攻略了,我们在使用Android系统的相机和读写文件时,一定要注意权限的请求和处理。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Android申请相机权限和读写权限实例 - Python技术站