Android 动态申请权限
时间: 2023-08-13 20:09:03 浏览: 65
在 Android 应用中,有一些需要用户授权才能访问的敏感权限,比如读取联系人、摄像头、定位等权限。在 Android 6.0(API Level 23)及以上版本中,系统引入了动态权限申请机制,应用需要在运行时动态申请这些权限。
以下是 Android 动态申请权限的基本流程:
1. 在 AndroidManifest.xml 文件中声明需要申请的权限,例如:
```
<uses-permission android:name="android.permission.CAMERA" />
```
2. 在应用中检查是否拥有该权限,如果没有则向用户申请该权限。
```
if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.CAMERA},
MY_PERMISSIONS_REQUEST_CAMERA);
}
```
3. 实现回调方法 onRequestPermissionsResult(),处理用户的权限选择结果。
```
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions,
int[] grantResults) {
if (requestCode == MY_PERMISSIONS_REQUEST_CAMERA) {
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// 权限已授予,执行相应操作
} else {
// 权限被拒绝,提示用户并做相应处理
}
return;
}
}
```
以上就是 Android 动态申请权限的基本流程。需要注意的是,在申请权限前需要先检查是否已经授权,如果已经授权则可以直接执行相应操作,否则需要向用户申请权限。此外,在处理用户的权限选择结果时,需要根据 requestCode 参数进行判断,以确定是哪个权限的申请结果。