android 如何获取系统权限
时间: 2023-09-21 12:11:08 浏览: 45
在 Android 中获取系统权限需要在 AndroidManifest.xml 文件中声明相应的权限,并且在运行时动态请求权限。
1. 在 AndroidManifest.xml 文件中声明权限:
```
<uses-permission android:name="android.permission.PERMISSION_NAME"/>
```
其中 PERMISSION_NAME 是需要声明的权限名称,例如 CAMERA、READ_CONTACTS、WRITE_EXTERNAL_STORAGE 等等。
2. 在代码中动态请求权限:
```
if (ContextCompat.checkSelfPermission(this, Manifest.permission.PERMISSION_NAME) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[] { Manifest.permission.PERMISSION_NAME }, REQUEST_CODE);
}
```
其中 this 表示当前上下文,REQUEST_CODE 是请求码,可以自己定义。
3. 处理权限请求结果:
```
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if (requestCode == REQUEST_CODE) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// 权限已授权
} else {
// 权限被拒绝
}
}
}
```
在 onRequestPermissionsResult 方法中处理权限请求结果,根据 grantResults 数组中的结果判断是否授权成功。如果授权成功,则可以执行相关操作;如果授权失败,则需要向用户解释原因并请求再次授权。