【HarmonyOS Next】拒绝权限二次申请授权处理

devtools/2025/2/24 8:53:42/

【HarmonyOS Next】拒绝权限二次申请授权处理

一、问题背景:

在这里插入图片描述

在鸿蒙系统中,对于用户权限的申请,会有三种用户选择方式:
1.单次使用允许
2.使用应用期间(长时)允许
3.不允许

当用户选择不允许后,再次向用户申请权限,该弹框就不会再显示。因为鸿蒙系统机制处理如此,为了避免骚扰用户。

之前的通用方案是,跳转到应用设置界面,让用户自己去手动设置同意所需的权限。但是这样的操作,对于用户来说是跳出,体验并不是很好。

在此情况下,鸿蒙官方提供了】拒绝权限二次申请授权处理的新方案。

二、解决方案:

综上所述,当应用通过requestPermissionsFromUser()拉起弹框请求用户授权时,用户拒绝授权。应用将无法再次通过该接口申请权限拉起弹框,需要用户在系统应用“设置”的界面中,手动授予权限。

应用此种情况下,可以通过调用requestPermissionOnSetting(),直接拉起权限设置弹框,引导用户授予权限。

atManager.requestPermissionOnSetting(context, ['ohos.permission.APPROXIMATELY_LOCATION']).then((data: Array<abilityAccessCtrl.GrantStatus>) => {console.info('data:' + JSON.stringify(data));
}).catch((err: BusinessError) => {console.error('data:' + JSON.stringify(err));
});

三、源码示例:

直接拉起权限设置半模态弹框,引导用户授予权限。
在这里插入图片描述
申请ohos.permission.CAMERA权限

import { abilityAccessCtrl, Context, common } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager();
let context: Context = getContext(this) as common.UIAbilityContext;
atManager.requestPermissionOnSetting(context, ['ohos.permission.CAMERA']).then((data: Array<abilityAccessCtrl.GrantStatus>) => {console.info('data:' + JSON.stringify(data));
}).catch((err: BusinessError) => {console.error('data:' + JSON.stringify(err));
});

http://www.ppmy.cn/devtools/161332.html

相关文章

网络安全研究

1.1 网络安全面临的威胁 网络安全面临的威胁呈现出多样化和复杂化的趋势&#xff0c;给个人、企业和国家的安全带来了严峻挑战。以下是当前网络安全面临的主要威胁&#xff1a; 1.1.1 数据泄露风险 数据泄露是当前网络安全的重大威胁之一。根据国家互联网应急中心发布的《20…

JavaScript函数-函数的返回值

在JavaScript编程语言中&#xff0c;函数是构建复杂逻辑和实现代码复用的关键组件。而函数的返回值则是这些功能的重要组成部分&#xff0c;它允许我们将数据从一个函数传递到另一个地方&#xff0c;从而使得函数更加通用和灵活。本文将深入探讨JavaScript函数返回值的各种特性…

《MB-TaylorFormer V2:基于泰勒公式扩展的改进多分支线性Transformer用于图像修复》学习笔记

paper&#xff1a;2501.04486 GitHub&#xff1a;FVL2020/MB-TaylorFormerV2 第一版&#xff1a;《MB-TaylorFormer&#xff1a;通过泰勒公式扩展的多分支高效Transformer用于图像去雾》学习笔记-CSDN博客 目录 摘要 1、介绍 2、相关工作 2.1 图像修复 2.2 高效自注意…

深度学习:基于Qwen复现DeepSeek R1的推理能力

原文链接&#xff1a;0元&#xff01;使用魔搭免费算力&#xff0c;基于Qwen基座模型&#xff0c;复现DeepSeek-R1 DeepSeek-R1-Zero通过GRPO算法&#xff0c;将强化学习从绝对奖励驱动转变为相对偏好优化&#xff0c;结合分组对比学习和多步推理奖励机制&#xff0c;使基础模…

DeepSeek 凭 GAN 创新应用,为智能家居全屋智能系统训练注入新活力

在智能家居全屋智能系统的训练进程里&#xff0c;训练方法的优劣对系统的性能起着决定性作用。DeepSeek 凭借其独特的理论基础&#xff0c;在训练中展现出与常用训练方法的显著差异&#xff0c;有力地推动了全屋智能系统训练的快速发展。 一、数据处理理论差异 常用的全屋智能…

MATLAB学习之旅:数据建模与仿真应用

在MATLAB的学习之旅中&#xff0c;我们已经积累了丰富的基础知识和实用的编程技巧。从前面的学习中&#xff0c;我们对MATLAB的基础操作、数据处理、统计分析等方面都有了深入的了解。如今&#xff0c;我们将迈向一个充满创造力和实用性的阶段——数据建模与仿真应用。这部分内…

Spring Boot 中事务的用法详解

引言 在 Spring Boot 中&#xff0c;事务管理是一个非常重要的功能&#xff0c;尤其是在涉及数据库操作的业务场景中。Spring 提供了强大的事务管理支持&#xff0c;能够帮助我们简化事务的管理和控制。本文将详细介绍 Spring Boot 中事务的用法&#xff0c;包括事务的基本概…

MacOS下使用Ollama本地构建DeepSeek并使用本地Dify构建AI应用

目录 1 大白话说一下文章内容2 作者的电脑配置3 DeepSeek的本地部署3.1 Ollamal的下载和安装3.2 选择合适的deepseek模型3.3 安转deepseek 4 DifyDeepSeek构建Al应用4.1 Dify的安装4.1.1 前置条件4.1.2 拉取代码4.1.3 启动Dify 4.2 Dify控制页面4.3 使用Dify实现个“文章标题生…