解决方法如下所示:
在AndroidManifest.xml文件中,确保添加以下权限:
在你的代码中,可以使用以下方法来检查和请求运行时权限:
// 检查是否有设置闹钟的权限
if (ContextCompat.checkSelfPermission(this, Manifest.permission.SET_ALARM) != PackageManager.PERMISSION_GRANTED) {
// 请求设置闹钟的权限
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.SET_ALARM}, 0);
} else {
// 已经有设置闹钟的权限,可以执行相关操作
setExactAlarm();
}
// 处理权限请求的结果
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if (requestCode == 0) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// 用户授予了设置闹钟的权限,可以执行相关操作
setExactAlarm();
} else {
// 用户拒绝了设置闹钟的权限,可以给出相应提示或者采取其他措施
}
}
}
// 设置精确闹钟的方法
private void setExactAlarm() {
// 在此处编写设置精确闹钟的代码
}
以上代码示例会检查是否拥有设置闹钟的权限,如果没有则请求权限,如果已经拥有权限则直接执行设置精确闹钟的操作。在权限请求的结果中,可以根据用户的选择进行相应的处理。
上一篇:Android 14 / SDK34 - 媒体投影服务持续要求用户权限。
下一篇:Android 14 ForegroundServiceStartNotAllowedException: Service.startForeground() 不允许