写出android api29动态申请权限代码
时间: 2024-01-21 14:03:36 浏览: 88
以下是 Android API 29 勾选手机状态权限的动态申请代码示例:
```java
// 检查是否已经获取了权限
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
// 如果没有权限,则申请权限
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_PHONE_STATE}, 1);
} else {
// 如果已经获取了权限,则执行相关操作
// TODO: 执行相关操作
}
// 处理权限申请的结果
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == 1) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// 用户同意授权,执行相关操作
// TODO: 执行相关操作
} else {
// 用户拒绝授权,给出提示
Toast.makeText(this, "您拒绝了该权限,可能无法正常使用该功能", Toast.LENGTH_SHORT).show();
}
}
}
```
以上代码中,首先通过 `ContextCompat.checkSelfPermission()` 方法检查是否已经获取了所需的权限,如果没有权限,则调用 `ActivityCompat.requestPermissions()` 方法申请权限;如果已经获取了权限,则执行相关操作。
当用户给出权限申请结果后,系统会调用 `onRequestPermissionsResult()` 方法,我们可以在该方法中处理用户的授权结果,根据结果执行相应的操作。
阅读全文