Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >鸿蒙NEXT版仿抖音快手App的网络动态授权

鸿蒙NEXT版仿抖音快手App的网络动态授权

作者头像
aqi00
发布于 2024-12-05 06:03:07
发布于 2024-12-05 06:03:07
18400
代码可运行
举报
文章被收录于专栏:老欧说安卓老欧说安卓
运行总次数:0
代码可运行

上一节我们利用滑块组件实现了多张图片的左右轮播特效,在此基础上可以实现多个短视频的上下轮播特效。那么要想正常播放网络视频,还得让App提前获得网络授权才行。鸿蒙系统提供了一种允许应用访问系统资源(例如通讯录)和系统能力(例如访问摄像头、麦克风等)的通用权限访问方式,以此避免系统数据和系统功能被不当使用。

根据授权方式的不同,鸿蒙App的权限类型可分为system_grant(系统授权)和user_grant(用户授权)。如果App声明了system_grant权限,那么系统会在安装App时,会自动把相应权限授予给该应用。但是对于user_grant权限来说,不仅需要App事先声明权限,还要在应用运行时,以弹窗方式请求用户授权。只有用户确认授权,应用才会获得相应权限,从而正常操作相关能力。

system_grant的授权方式比较简单,而user_grant的授权方式比较复杂。就网络访问权限而言,它属于system_grant权限,具体的授权步骤说明如下:

打开App模块的配置文件module.json5,给module节点添加下面的网络权限声明配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"requestPermissions":[
  {
    "name" : "ohos.permission.INTERNET"
  }
]

注意requestPermissions节点跟着权限数组,可配置一个或者多个权限,比如ohos.permission.INTERNET表示访问网络权限。由于INTERNET属于系统授权,安全等级比较低,因此只要在module.json5中添加声明就行了,系统会在安装App时自动分配网络权限。

如果是申请user_grant权限,比如麦克风权限,那么不光添加权限声明配置,还要在ETS代码中添加权限检查和权限授予代码,具体的授权步骤说明如下:

1、给module节点添加权限声明配置

对user_grant权限而言,requestPermissions节点不仅要声明权限的名称(name字段),还要声明申请的原因(reason字段),以及该权限的使用场景(usedScene)字段。

其中原因文本要配置到resources/base/element/string.json中,然后以“$string:文本字段名称”的形式引用到reason字段。比如先给string.json补充下面的字符串配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "name": "Microphone_reason",
  "value": "麦克风权限"
}

再打开module.json5,在权限声明的name后面添加以下一行reason配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    "reason": "$string:Microphone_reason",

至于使用场景的usedScene对象,要求在when字段指定该权限的调用时机,时机类型有两种,分别是inuse(使用时)、always(始终),通常填inuse即可。

综合上述的配置说明,给App申请麦克风权限时,要在module.json5文件的module节点添加下面完整的权限声明语句:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"requestPermissions":[
  {
    "name" : "ohos.permission.MICROPHONE", // 权限名称
    "reason": "$string:Microphone_reason", // 申请原因
    "usedScene": { // 使用场景
      "when":"inuse" // 在使用时授权
    }
  }
]

2、在ETS代码中处理动态授权

打开App模块的入口代码EntryAbility.ets,先在文件开头添加下面的导包语句:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import { abilityAccessCtrl, Permissions } from '@kit.AbilityKit'

再到onWindowStageCreate方法内部调用下面代码,创建授权管理器AtManager:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let atManager = abilityAccessCtrl.createAtManager()

然后通过授权管理器提供的下列方法,分别执行权限的检查、授权等操作。

checkAccessToken:校验应用是否授予了指定权限。第一个参数为目标应用的身份标识,可通过context.applicationInfo.accessTokenId获取。第二个参数为待检查的权限名称数组。

requestPermissionsFromUser:请求拉起权限设置弹框。如果用户拒绝授权,那么调用该接口将无法再次拉起弹框,需要用户在系统设置中手动授予权限;或者在代码中调用requestPermissionOnSetting,请求再次拉起权限设置弹框,从而引导用户正确授权。

requestPermissionOnSetting:请求再次拉起权限设置弹框。

综合上述的配置修改和代码完善,编译运行鸿蒙App,看到权限请求弹窗如下图所示,点击弹窗右下角的确定按钮,即可给App授予录音权限。

下一篇文章会介绍如何使用网络请求库http来调用网络上的http接口。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-12-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 老欧说安卓 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
鸿蒙开发:权限管理之授权方式
在之前的文章中,关于权限管理进行了简单的概述,也了解了如何去声明权限,其实关于权限管理,还有一个知识点需要掌握,那就是权限的授权方式。
程序员一鸣
2025/03/17
1880
鸿蒙开发:权限管理之授权方式
鸿蒙NEXT版仿抖音快手App的相机录制视频
上一节我们使用Refresh组件实现了下拉刷新功能。除了浏览别人发布的短视频,用户也能在抖音App上发布自己的作品,当然首先得有一段录制好的视频,那么在鸿蒙系统录像用到了系统相机。使用相机录像的具体步骤说明如下:
aqi00
2024/12/19
1550
鸿蒙NEXT版仿抖音快手App的相机录制视频
HarmonyOS访问控制授权申请
应用的APL(Ability Privilege Level)等级分为normal,system_basic和system_core三个等级,默认情况下,应用的APL等级都为normal等级。权限类型分为system_grant和user_grant两种类型。应用可申请的权限项参见应用权限列表。
酒楼
2023/11/25
7110
鸿蒙开发:权限管理之权限声明
为什么要有权限管理?最大原因是提高用户对隐私和数据安全的控制权,防止恶意软件滥用权限,试想一下,如果没有权限管理,肯定会有一些恶意软件利用这些默认授权权限,获取用户的敏感信息,对用户隐私构成威胁‌,这是其一,其二就是用户的体验,因为用户无法根据自己的需求授权权限,可能导致不必要的权限被授予,于公于私,于情于理,权限管理都是必须且坚决要执行的。
程序员一鸣
2025/03/15
2360
鸿蒙开发:权限管理之权限声明
鸿蒙开发:申请授权权限
通过前面两章的概述,关于权限的基本知识点已经概述的七七八八了,那么本篇文章,我们着重概述一下如何去申请权限。
程序员一鸣
2025/03/17
1960
鸿蒙开发:申请授权权限
【HarmonyOS】应用权限原理和封装
在项目中,避免不了需要调用系统资源和系统能力,比如:日历读写、摄像头等。因此,需要了解对系统资源访问权限的申请方式方法。
钟子翔
2024/12/24
1140
HarmonyOS NEXT 头像制作项目系列教程之 --- 权限配置与管理
在HarmonyOS应用开发中,权限管理是保障用户隐私和系统安全的重要机制。应用需要通过在module.json5文件中声明所需权限,并在运行时申请用户授权才能访问受保护的系统功能和用户数据。本教程将详细介绍如何在HarmonyOS应用中配置和管理权限。
全栈若城
2025/05/11
1170
HarmonyOS学习路之开发篇—安全管理(权限开发)
系统所有应用均在应用沙盒内运行。默认情况下,应用只能访问有限的系统资源,系统负责管理应用对资源的访问权限。这些限制是通过DAC(Discretionary Access Control)、MAC(Mandatory Access Control)以及本文描述的应用权限机制等多种不同的形式实现的。因应用需要实现其某些功能而必须访问系统或其他应用的数据或操作某些器件,此时就需要系统或其他应用能提供接口,考虑到安全,就需要对这些接口采用一种限制措施,这就是称为“应用权限”的安全机制。
爱吃土豆丝的打工人
2023/10/15
5710
【HarmonyOS 5】鸿蒙应用隐私保护详解
在今天这个手机不离手的时代,我们每天用手机支付、聊天、记录生活,不知不觉中,大量个人信息都存储在了移动设备里。但你有没有想过,如果这些隐私数据泄露了会怎样?从接到诈骗电话,到遭遇身份盗用,后果可能不堪设想。好在,HarmonyOS早就为我们的隐私安全做好了全方位的防护。
GeorgeGcs
2025/05/06
2710
【HarmonyOS 5】鸿蒙应用隐私保护详解
三文带你轻松上手鸿蒙的AI语音01-实时语音识别
HarmonyOSNext中集成了强大的AI功能。Core Speech Kit(基础语音服务)是它提供的众多AI功能中的一种。
万少
2025/02/09
2820
三文带你轻松上手鸿蒙的AI语音01-实时语音识别
HarmonyOS NEXT 权限申请系统授权和用户授权权限
在鸿蒙原生开发中,我们normal级别的证书能够使用的权限分为系统授权权限和用户授权权限
水滴石轩
2025/03/17
2860
HarmonyOS NEXT 权限申请系统授权和用户授权权限
高质量 HarmonyOS 应用权限管控流程
在 HarmonyOS 应用开发过程中,往往会涉及到敏感数据和硬件资源的调动和访问,而这部分的调用就会涉及到管控这部分的知识和内容了。我们需要对它有所了解,才可以在应用开发中提高效率和避免踩坑。
万少
2025/02/10
1980
高质量 HarmonyOS  应用权限管控流程
Flutter_udid 三方库鸿蒙适配之旅:从零到一的深度实践
在数字化浪潮的推动下,跨平台开发框架如 Flutter 凭借其高效、便捷的特性,成为了开发者们的宠儿。而鸿蒙系统的崛起,更是为跨平台开发注入了新的活力。为了助力开发者在鸿蒙生态中快速实现 Flutter_udid 获取设备标识符功能,本文将深入浅出地为大家解析如何适配 Flutter_udid 三方库至鸿蒙平台。
徐建国
2025/04/24
1410
Flutter_udid 三方库鸿蒙适配之旅:从零到一的深度实践
鸿蒙应用开发-录音保存并播放音频
录音并保存为m4a格式的音频,然后播放该音频,参考文档使用AVRecorder开发音频录制功能(ArkTS),更详细接口信息请查看接口文档:@ohos.multimedia.media (媒体服务)。
夜雨飘零
2024/05/26
5061
鸿蒙应用开发-录音保存并播放音频
我写个HarmonyOS Next版本的微信聊天02-完结篇
应用需要在module.json5配置文件的requestPermissions标签中声明权限。
万少
2025/02/09
1940
我写个HarmonyOS Next版本的微信聊天02-完结篇
鸿蒙应用开发-录音并使用WebSocket实现实时语音识别
录音并实时获取RAW的音频格式数据,利用WebSocket上传数据到服务器,并实时获取语音识别结果,参考文档使用AudioCapturer开发音频录制功能(ArkTS),更详细接口信息请查看接口文档:AudioCapturer8+和@ohos.net.webSocket (WebSocket连接)。
夜雨飘零
2024/05/26
7100
鸿蒙应用开发-录音并使用WebSocket实现实时语音识别
【HarmonyOS NEXT】鸿蒙应用使用后台任务之长时任务,解决屏幕录制音乐播放等操作不被挂起
了解后台任务和长时任务前,我们需要先明白鸿蒙的后台特性:所谓的后台,指的是设备返回主界面、锁屏、应用切换等操作会使应用退至后台这个状态。
GeorgeGcs
2025/03/24
3290
【HarmonyOS NEXT】鸿蒙应用使用后台任务之长时任务,解决屏幕录制音乐播放等操作不被挂起
HarmonyOS NEXT AI基础语音服务-语音输入
这是一个基于AI基础语音服务实现的实时语音转文字案例,通过麦克风采集音频并实时转换为文本。
用户8181473
2025/03/30
1360
HarmonyOS 开发实践 —— 基于@ohos.pasteboard实现剪贴板功能
本模块主要提供管理系统剪贴板的能力,为系统复制、粘贴功能提供支持。系统剪贴板支持对文本、HTML、URI、Want、PixelMap等内容的操作。
小帅聊鸿蒙
2024/12/01
2410
HarmonyOS 开发实践 —— 基于@ohos.pasteboard实现剪贴板功能
【HarmonyOS Next】拒绝权限二次申请授权处理
当用户选择不允许后,再次向用户申请权限,该弹框就不会再显示。因为鸿蒙系统机制处理如此,为了避免骚扰用户。
GeorgeGcs
2025/03/24
2510
推荐阅读
相关推荐
鸿蒙开发:权限管理之授权方式
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验