一、权限的工作流程权限申请使用的工作流程应用在访问数据或者执行操作时,需要评估该行为是否需要应用具备相关的权限。如果确认需要目标权限,则需要在应用安装包中申请目标权限。然后,需要判断目标权限是否属于用户授权类。如果是,应用需要使用动态授权弹框来提供用户授权界面,请求用户授权目标权限。当用户授予应用所需权限后,应用可成功访问目标数据或执行目标操作。应用使用权限的工作流程如图所示。1:开发者可以参考...
ATM(AccessTokenManager)是HarmonyOS上基于AccessToken构建的统一的应用权限管理能力。默认情况下,应用只能访问有限的系统资源。但某些情况下,应用为了扩展功能的诉求,需要访问额外的系统或其他应用的数据(包括用户个人数据)、功能。系统或应用也必须以明确的方式对外提供接口来共享其数据或功能。HarmonyOS提供了一种访问控制机制来保证这些数据或功能不会被不当或恶意使用,即应用权限。应用权限保护的对象可以分为数据...
一、权限等级说明根据接口所涉数据的敏感程度或所涉能力的安全威胁影响,ATM模块定义了不同开放范围的权限等级来保护用户隐私。应用APL等级说明元能力权限等级APL(AbilityPrivilegeLevel)指的是应用的权限申请优先级的定义,不同APL等级的应用能够申请的权限等级不同。应用的等级可以分为三个等级,分别是:默认情况下,应用的APL等级都为normal等级。权限等级说明根据权限对于不同等级应用有不同的开放范围,权限类型对应分...
一、场景介绍应用的APL(AbilityPrivilegeLevel)等级分为normal、systembasic和systemcore三个等级,默认情况下,应用的APL等级都为normal等级。权限类型分为systemgrant和usergrant两种类型。二、配置文件权限声明应用需要在工程配置文件中,对需要的权限逐个声明,未在配置文件中声明的权限,应用将无法获得授权。HarmonyOS提供了两种应用模型,分别为FA模型和Stage模型不同的应用模型的应用包结构不同,所使用的配置文件不...
一、向用户申请授权当应用需要访问用户的隐私信息或使用系统能力时,例如获取位置信息、访问日历、使用相机拍摄照片或录制视频等,应该向用户请求授权。这需要使用usergrant类型权限。在此之前,应用需要进行权限校验,以判断当前调用者是否具备所需的权限。如果权限校验结果表明当前应用尚未被授权该权限,则应使用动态弹框授权方式,为用户提供手动授权的入口。示意效果如下图所示。图1向用户申请授权说明,每次访问受目标权...
一、要提前准备的主要材料包括域名,服务器,包名,公钥,MD5值,法人身份证正反两面,邮箱,手机号2个。域名是备案过的,应为要求域名能打开,还要悬挂备案号。操作时要提前沟通好,需要法人刷脸实时认证的。二、具体需要准备和填写的信息如下
一、鸿蒙应用元服务如何查询包名?登录AppGalleryConnect,点击“我的应用”,输入应用名称可查询到需要备案的鸿蒙应用元服务包名。二、鸿蒙应用元服务如何获取公钥和签名信息?(1)登录AppGalleryConnect,点击“用户与访问”,在页面左侧点击“证书管理”,下载需要备案的鸿蒙应用元服务开发者证书;(2)使用文本编辑器(如,记事本)打开已下载的证书,按照图示内容删除根证书和中间证书,保留叶子证书后,点击保存;(3)...
2024-04-10 14:38:05 1557浏览 0点赞 0回复 0收藏
一、鸿蒙原生应用元服务备案流程和方式是一样的,都是APP备案的流程。二、通过华为云、阿里云等服务商进行备案。三、进行鸿蒙应用元服务备案前需要注册域名、购买有服务器、域名进行了备案。这个需要一定的时间周期,要提前准备。如果从新开始准备的话,估计要十来天。四、提交备案时,平台选择鸿蒙,服务商初审完成后,会收到邮件短信通知,如果不合格的话,服务商会反复沟通指导。五、服务商初审后提交工信部,到时工信部发短...
2024-04-09 09:46:37 1824浏览 1点赞 0回复 1收藏
一、网络管理模块主要提供以下功能:HTTP数据请求:通过HTTP发起一个数据请求。WebSocket连接:使用WebSocket建立服务器与客户端的双向连接。Socket连接:通过Socket进行数据传输。二、约束与限制使用网络管理模块的相关功能时,需要请求相应的权限。三、具体权限名与说明ohos.permission.GETNETWORKINFO获取网络连接信息。ohos.permission.SETNETWORKINFO修改网络连接状态。ohos.permission.INTERNET允许程序打开网络套接字,...
2024-04-08 09:41:51 1638浏览 0点赞 0回复 0收藏
一、场景介绍使用WebSocket建立服务器与客户端的双向连接,需要先通过createWebSocket()方法创建WebSocket对象,然后通过connect()方法连接到服务器。当连接成功后,客户端会收到open事件的回调,之后客户端就可以通过send()方法与服务器进行通信。当服务器发信息给客户端时,客户端会收到message事件的回调。当客户端不要此连接时,可以通过调用close()方法主动断开连接,之后客户端会收到close事件的回调。若在上述任一过程中...
2024-04-07 09:38:54 2577浏览 0点赞 0回复 0收藏
应用通过TLSSocket进行加密数据传输开发步骤客户端TLSSocket流程:1.import需要的socket模块。2.绑定服务器IP和端口号。3.双向认证上传客户端CA证书及数字证书;单向认证只上传CA证书,无需上传客户端证书。4.创建一个TLSSocket连接,返回一个TLSSocket对象。5.(可选)订阅TLSSocket相关的订阅事件。6.发送数据。7.TLSSocket连接使用完毕后,主动关闭。创建一个(双向认证)TLSSocket连接,返回一个TLSSocket对象。importsocke...
2024-04-03 14:21:49 2466浏览 0点赞 0回复 1收藏
应用TCPUDP协议进行通信1.UDP与TCP流程大体类似,下面以TCP为例:2.import需要的socket模块。3.创建一个TCPSocket连接,返回一个TCPSocket对象。4.(可选)订阅TCPSocket相关的订阅事件。5.绑定IP地址和端口,端口可以指定或由系统随机分配。6.连接到指定的IP地址和端口。7.发送数据。Socket连接使用完毕后,主动关闭。importsocketfrom'ohos.net.socket';创建一个TCPSocket连接,返回一个TCPSocket对象。lettcpsocket.construc...
2024-04-02 15:14:09 2241浏览 0点赞 0回复 1收藏
一、简介Socket连接主要是通过Socket进行数据传输,支持TCPUDPTLS协议。二、基本概念Socket:套接字,就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。TCP:传输控制协议(TransmissionControlProtocol)。是一种面向连接的、可靠的、基于字节流的传输层通信协议。UDP:用户数据报协议(UserDatagramProtocol)。是一个简单的面向消息的传输层,不需要连接。TLS:安全传输层协议(TransportLayerSecurity)。用于在两...
2024-04-01 14:11:56 2441浏览 0点赞 0回复 1收藏
一、场景介绍应用通过HTTP发起一个数据请求,支持常见的GET、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT方法。二、接口说明HTTP数据请求功能主要由http模块提供。使用该功能需要申请ohos.permission.INTERNET权限。涉及的接口如下表,具体的接口说明请参考API文档。三、request接口开发步骤1.从ohos.net.http.d.ts中导入http命名空间。2.调用createHttp()方法,创建一个HttpRequest对象。3.调用该对象的on()方法,订阅h...
2024-03-29 17:44:17 2666浏览 0点赞 0回复 0收藏
并发模型是用来实现不同应用场景中并发任务的编程模型,常见的并发模型分为基于内存共享的并发模型和基于消息通信的并发模型。Actor并发模型作为基于消息通信并发模型的典型代表,不需要开发者去面对锁带来的一系列复杂偶发的问题,同时并发度也相对较高,因此得到了广泛的支持和使用,也是当前ArkTS语言选择的并发模型。由于Actor模型的内存隔离特性,所以需要进行跨线程的数据序列化传输。一、数据传输对象目前支持传输的数据...
2024-03-28 14:33:22 2129浏览 0点赞 0回复 0收藏
一、TaskPool注意事项实现任务的函数需要使用装饰器Concurrent标注,且仅支持在.ets文件中使用。实现任务的函数入参需满足序列化支持的类型。由于不同线程中上下文对象是不同的,因此TaskPool工作线程只能使用线程安全的库,例如UI相关的非线程安全库不能使用。序列化传输的数据量大小限制为16MB。二、Worker注意事项创建Worker时,传入的Worker.ts路径在不同版本有不同的规则。Worker创建后需要手动管理生命周期,且最多同时运...
2024-03-27 16:14:43 2438浏览 0点赞 0回复 0收藏
TaskPool运作机制图1TaskPool运作机制示意图TaskPool支持开发者在主线程封装任务抛给任务队列,系统选择合适的工作线程,进行任务的分发及执行,再将结果返回给主线程。接口直观易用,支持任务的执行、取消。工作线程数量上限为4。Worker运作机制图2Worker运作机制示意图创建Worker的线程称为宿主线程(不一定是主线程,工作线程也支持创建Worker子线程),Worker自身的线程称为Worker子线程(或Actor线程、工作线程)。每个Wor...
2024-03-26 14:47:40 2154浏览 0点赞 0回复 0收藏
TaskPool(任务池)和Worker的作用是为应用程序提供一个多线程的运行环境,用于处理耗时的计算任务或其他密集型任务。可以有效地避免这些任务阻塞主线程,从而最大化系统的利用率,降低整体资源消耗,并提高系统的整体性能。本文将从实现特点和适用场景两个方面来进行TaskPool与Worker的比较,同时提供了各自运作机制和注意事项的相关说明。一、实现特点对比二、适用场景对比TaskPool偏向独立任务维度,该任务在线程中执行,无...
2024-03-25 14:05:46 2278浏览 0点赞 0回复 0收藏
并发模型是用来实现不同应用场景中并发任务的编程模型,常见的并发模型分为基于内存共享的并发模型和基于消息通信的并发模型。Actor并发模型作为基于消息通信并发模型的典型代表,不需要开发者去面对锁带来的一系列复杂偶发的问题,同时并发度也相对较高,因此得到了广泛的支持和使用,也是当前ArkTS语言选择的并发模型。由于Actor模型的内存隔离特性,所以需要进行跨线程的数据序列化传输。一、数据传输对象目前支持传输的数据...
2024-03-22 15:33:23 2728浏览 0点赞 0回复 0收藏
使用异步并发可以解决单次IO任务阻塞的问题,但是如果遇到IO密集型任务,同样会阻塞线程中其它任务的执行,这时需要使用多线程并发能力来进行解决。IO密集型任务的性能重点通常不在于CPU的处理能力,而在于IO操作的速度和效率。这种任务通常需要频繁地进行磁盘读写、网络通信等操作。此处以频繁读写系统文件来模拟IO密集型并发任务的处理。定义并发函数,内部密集调用IO能力。importfsfrom'ohos.file.fs';定义并发函数,内部密...
2024-03-21 14:54:48 1631浏览 0点赞 0回复 0收藏