未验证 提交 48a94c61 编写于 作者: O openharmony_ci 提交者: Gitee

!12676 同步master的Release-notes目录结构到3.2 Beta4分支

Merge pull request !12676 from 时睿/OpenHarmony-3.2-Beta4
...@@ -104,9 +104,9 @@ repo forall -c 'git lfs pull' ...@@ -104,9 +104,9 @@ repo forall -c 'git lfs pull'
API变更请参考: API变更请参考:
[JS API 差异报告](api-change/v2.2-beta2/js-apidiff-v2.2-beta2.md) [JS API 差异报告](api-diff/v2.2-beta2/js-apidiff-v2.2-beta2.md)
[Native API 差异报告](api-change/v2.2-beta2/native-apidiff-v2.2-beta2.md) [Native API 差异报告](api-diff/v2.2-beta2/native-apidiff-v2.2-beta2.md)
## 修复缺陷列表 ## 修复缺陷列表
......
...@@ -127,7 +127,7 @@ repo forall -c 'git lfs pull' ...@@ -127,7 +127,7 @@ repo forall -c 'git lfs pull'
### API变更 ### API变更
API变更请参考:[JS API 差异报告](api-change/v3.0-LTS/js-apidiff-v3.0-lts.md) API变更请参考:[JS API 差异报告](api-diff/v3.0-LTS/js-apidiff-v3.0-lts.md)
### 芯片及开发板适配 ### 芯片及开发板适配
......
...@@ -130,11 +130,11 @@ repo forall -c 'git lfs pull' ...@@ -130,11 +130,11 @@ repo forall -c 'git lfs pull'
API变更请参考: API变更请参考:
_[JS API 差异报告](api-change/v3.1-beta/js-apidiff-v3.1-beta.md)_ _[JS API 差异报告](api-diff/v3.1-beta/js-apidiff-v3.1-beta.md)_
_[Native API差异报告](api-change/v3.1-beta/native-apidiff-v3.1-beta.md)_ _[Native API差异报告](api-diff/v3.1-beta/native-apidiff-v3.1-beta.md)_
_[Changelog](api-change/v3.1-beta/changelog-v3.1-beta.md)_ _[Changelog](api-diff/v3.1-beta/changelog-v3.1-beta.md)_
### 芯片及开发板适配 ### 芯片及开发板适配
......
...@@ -190,7 +190,7 @@ repo forall -c 'git lfs pull' ...@@ -190,7 +190,7 @@ repo forall -c 'git lfs pull'
API变更请参考: API变更请参考:
_[API差异报告](api-change/v3.1-Release/Readme-CN.md)_ _[API差异报告](api-diff/v3.1-Release/Readme-CN.md)_
### 芯片及开发板适配 ### 芯片及开发板适配
......
...@@ -75,7 +75,7 @@ repo forall -c 'git lfs pull' ...@@ -75,7 +75,7 @@ repo forall -c 'git lfs pull'
| 版本源码 | **版本信息** | **下载站点** | **SHA256校验码** | | 版本源码 | **版本信息** | **下载站点** | **SHA256校验码** |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| 全量代码(标准、轻量和小型系统) | 3.1.4 Release | [站点](https://mirrors.huaweicloud.com/openharmony/os/3.1.4/code-v3.1.4-Release.tar.gz) | [SHA256校验码](https://mirrors.huaweicloud.com/openharmony/os/3.1.4/code-v3.1.4-Release.tar.gz.sha256) | | 全量代码(标准、轻量和小型系统) | 3.1.4 Release | [站点](https://mirrors.huaweicloud.com/openharmony/os/3.1.4/code-v3.1.4-Release-2022-12-12.tar.gz) | [SHA256校验码](https://mirrors.huaweicloud.com/openharmony/os/3.1.4/code-v3.1.4-Release-2022-12-12.tar.gz.sha256) |
| Hi3516标准系统解决方案(二进制) | 3.1.4 Release | [站点](https://mirrors.huaweicloud.com/openharmony/os/3.1.4/standard_hi3516.tar.gz) | [SHA256校验码](https://mirrors.huaweicloud.com/openharmony/os/3.1.4/standard_hi3516.tar.gz.sha256) | | Hi3516标准系统解决方案(二进制) | 3.1.4 Release | [站点](https://mirrors.huaweicloud.com/openharmony/os/3.1.4/standard_hi3516.tar.gz) | [SHA256校验码](https://mirrors.huaweicloud.com/openharmony/os/3.1.4/standard_hi3516.tar.gz.sha256) |
| RK3568标准系统解决方案(二进制) | 3.1.4 Release | [站点](https://mirrors.huaweicloud.com/openharmony/os/3.1.4/standard_rk3568.tar.gz) | [SHA256校验码](https://mirrors.huaweicloud.com/openharmony/os/3.1.4/standard_rk3568.tar.gz.sha256) | | RK3568标准系统解决方案(二进制) | 3.1.4 Release | [站点](https://mirrors.huaweicloud.com/openharmony/os/3.1.4/standard_rk3568.tar.gz) | [SHA256校验码](https://mirrors.huaweicloud.com/openharmony/os/3.1.4/standard_rk3568.tar.gz.sha256) |
| Hi3861轻量系统解决方案(二进制) | 3.1.4 Release | [站点](https://mirrors.huaweicloud.com/openharmony/os/3.1.4/hispark_pegasus.tar.gz) | [SHA256校验码](https://mirrors.huaweicloud.com/openharmony/os/3.1.4/hispark_pegasus.tar.gz.sha256) | | Hi3861轻量系统解决方案(二进制) | 3.1.4 Release | [站点](https://mirrors.huaweicloud.com/openharmony/os/3.1.4/hispark_pegasus.tar.gz) | [SHA256校验码](https://mirrors.huaweicloud.com/openharmony/os/3.1.4/hispark_pegasus.tar.gz.sha256) |
......
...@@ -173,7 +173,7 @@ ArkUI支持AbilityComponent组件将应用界面(Ability)作为控件嵌入 ...@@ -173,7 +173,7 @@ ArkUI支持AbilityComponent组件将应用界面(Ability)作为控件嵌入
### API变更 ### API变更
_[API差异报告](api-change/v3.2-beta1/Readme-CN.md)_ _[API差异报告](api-diff/v3.2-beta1/Readme-CN.md)_
### 芯片及开发板适配 ### 芯片及开发板适配
...@@ -205,7 +205,7 @@ _[API差异报告](api-change/v3.2-beta1/Readme-CN.md)_ ...@@ -205,7 +205,7 @@ _[API差异报告](api-change/v3.2-beta1/Readme-CN.md)_
| ArkUI | [Game2048](https://gitee.com/openharmony/applications_app_samples/tree/master/ETSUI/Game2048) | 2048是一款比较流行的数字游戏,此游戏demo是grid组件基础上进行开发完成的。 | eTS | | ArkUI | [Game2048](https://gitee.com/openharmony/applications_app_samples/tree/master/ETSUI/Game2048) | 2048是一款比较流行的数字游戏,此游戏demo是grid组件基础上进行开发完成的。 | eTS |
| 窗口 | [Window](https://gitee.com/openharmony/applications_app_samples/tree/master/Graphics/Window) | 本示例展示了创建新窗口,将应用悬浮在其他界面,及应用分屏等功能 | eTS | | 窗口 | [Window](https://gitee.com/openharmony/applications_app_samples/tree/master/Graphics/Window) | 本示例展示了创建新窗口,将应用悬浮在其他界面,及应用分屏等功能 | eTS |
| 分布式数据管理 | [Preference](https://gitee.com/openharmony/applications_app_samples/tree/master/data/Preferences) | 本示例主要展示了首选项在主题切换方面的功能。 | eTS | | 分布式数据管理 | [Preference](https://gitee.com/openharmony/applications_app_samples/tree/master/data/Preferences) | 本示例主要展示了首选项在主题切换方面的功能。 | eTS |
| ArkUI | [NativeAPI](https://gitee.com/openharmony/applications_app_samples/tree/master/Native/NativeAPI) | 本示例展示了在eTS中如何调用C++的接口以及C++如何回调JS,完成了一个简单的五子棋游戏,在native层完成计算逻辑,eTS完成界面绘制和刷新。 | eTS/C++ | | ArkUI | [NativeAPI](https://gitee.com/openharmony/app_samples/tree/master/Native/NativeAPI) | 本示例展示了在eTS中如何调用C++的接口以及C++如何回调JS,完成了一个简单的五子棋游戏,在native层完成计算逻辑,eTS完成界面绘制和刷新。 | eTS/C++ |
| 全球化 | [International](https://gitee.com/openharmony/applications_app_samples/tree/master/common/International) | 本示例展示了i18n,intl,resourceManager在eTS中的使用,使用相关api实现系统语言和地区设置、时间和时区设置,展示了区域格式化示例。 | eTS | | 全球化 | [International](https://gitee.com/openharmony/applications_app_samples/tree/master/common/International) | 本示例展示了i18n,intl,resourceManager在eTS中的使用,使用相关api实现系统语言和地区设置、时间和时区设置,展示了区域格式化示例。 | eTS |
请访问[Samples](https://gitee.com/openharmony/applications_app_samples)仓了解更多信息。 请访问[Samples](https://gitee.com/openharmony/applications_app_samples)仓了解更多信息。
......
...@@ -176,7 +176,7 @@ DeviceProfile适配分布式数据库自动同步策略,以及采集信息补 ...@@ -176,7 +176,7 @@ DeviceProfile适配分布式数据库自动同步策略,以及采集信息补
API变更请参考: API变更请参考:
[*API差异报告*](api-change/v3.2-beta3/Readme-CN.md) [*API差异报告*](api-diff/v3.2-beta3/js-apidiff-ability.md)
### 芯片及开发板适配 ### 芯片及开发板适配
......
...@@ -184,6 +184,13 @@ ArkTS API新增支持错误码的上报,帮助开发者快速捕捉异常, ...@@ -184,6 +184,13 @@ ArkTS API新增支持错误码的上报,帮助开发者快速捕捉异常,
| DFX | - 对HiTrace的打点接口、调用链接口从底层概念进行统一。<br/>- 新增支持功耗数据、系统事件数据的采集。<br/>- 新增支持JS HAP在启动过程中及时采集perf数据。<br/>主要涉及需求:<br/>I5X4TY 【新增特性】支持HiTrace统一概念的HiTraceMeter打点接口<br/>I5X4U1 【新增特性】支持HiTrace统一概念的HiTraceChain调用链接口<br/>I5X4TD 【新增特性】功耗数据采集<br/>I5X4TE 【新增特性】系统事件数据采集<br/>I5X4TL 【新增特性】支持JS HAP启动过程及时采集perf数据 | NA | | DFX | - 对HiTrace的打点接口、调用链接口从底层概念进行统一。<br/>- 新增支持功耗数据、系统事件数据的采集。<br/>- 新增支持JS HAP在启动过程中及时采集perf数据。<br/>主要涉及需求:<br/>I5X4TY 【新增特性】支持HiTrace统一概念的HiTraceMeter打点接口<br/>I5X4U1 【新增特性】支持HiTrace统一概念的HiTraceChain调用链接口<br/>I5X4TD 【新增特性】功耗数据采集<br/>I5X4TE 【新增特性】系统事件数据采集<br/>I5X4TL 【新增特性】支持JS HAP启动过程及时采集perf数据 | NA |
API变更请参考:
[*API差异报告*](api-diff/v3.2-beta4/js-apidiff-ability.md)
### 芯片及开发板适配 ### 芯片及开发板适配
芯片及开发板适配状态请参考[SIG-Devboard](https://gitee.com/openharmony/community/blob/master/sig/sig-devboard/sig_devboard_cn.md)信息。 芯片及开发板适配状态请参考[SIG-Devboard](https://gitee.com/openharmony/community/blob/master/sig/sig-devboard/sig_devboard_cn.md)信息。
...@@ -200,7 +207,7 @@ ArkTS API新增支持错误码的上报,帮助开发者快速捕捉异常, ...@@ -200,7 +207,7 @@ ArkTS API新增支持错误码的上报,帮助开发者快速捕捉异常,
| 数据管理 | [CrossAppDataShare: 跨应用数据共享](https://gitee.com/openharmony/applications_app_samples/tree/master/data/CrossAppDataShare) | 本示例实现了一个跨应用数据共享实例,分为联系人(数据提供方)和联系人助手(数据使用方)两部分:联系人支持联系人数据的增、删、改、查等功能;联系人助手支持同步联系人数据,当联系人与联系人助手数据不一致时,支持合并重复数据。 | | 数据管理 | [CrossAppDataShare: 跨应用数据共享](https://gitee.com/openharmony/applications_app_samples/tree/master/data/CrossAppDataShare) | 本示例实现了一个跨应用数据共享实例,分为联系人(数据提供方)和联系人助手(数据使用方)两部分:联系人支持联系人数据的增、删、改、查等功能;联系人助手支持同步联系人数据,当联系人与联系人助手数据不一致时,支持合并重复数据。 |
| 媒体 | [PlayMusicBackground: 后台播放音乐](https://gitee.com/openharmony/applications_app_samples/tree/master/ResourcesSchedule/PlayMusicBackground) | 本示例基于API9 stage应用开发模型,用于验证OpenHarmony提供的后台播放音乐时申请长时任务功能。 | | 媒体 | [PlayMusicBackground: 后台播放音乐](https://gitee.com/openharmony/applications_app_samples/tree/master/ResourcesSchedule/PlayMusicBackground) | 本示例基于API9 stage应用开发模型,用于验证OpenHarmony提供的后台播放音乐时申请长时任务功能。 |
| 资源调度 | [ReminderAgentManager: 后台代理提醒](https://gitee.com/openharmony/applications_app_samples/tree/master/ResourcesSchedule/ReminderAgentManager) | 本示例通过使用后台代理提醒的能力,创建闹钟、日历、计时器三种类型的定时提醒,保证应用被冻结或退出时,计时和弹出提醒的功能可以被后台系统服务代理。 | | 资源调度 | [ReminderAgentManager: 后台代理提醒](https://gitee.com/openharmony/applications_app_samples/tree/master/ResourcesSchedule/ReminderAgentManager) | 本示例通过使用后台代理提醒的能力,创建闹钟、日历、计时器三种类型的定时提醒,保证应用被冻结或退出时,计时和弹出提醒的功能可以被后台系统服务代理。 |
| 文件管理 | [StorageStatistic: 存储空间统计](https://gitee.com/openharmony/applications_app_samples/tree/master/Graphics/Screenshot) | 本示例通过应用程序包管理、应用空间统计与卷管理模块,实现了查看当前设备存储空间信息、所有安装的应用的存储信息、所有可用卷的存储信息的功能。 | | 文件管理 | [StorageStatistic: 存储空间统计](https://gitee.com/openharmony/applications_app_samples/tree/master/FileManager/StorageStatistic) | 本示例通过应用程序包管理、应用空间统计与卷管理模块,实现了查看当前设备存储空间信息、所有安装的应用的存储信息、所有可用卷的存储信息的功能。 |
| 窗口 | [Screenshot: 截屏](https://gitee.com/openharmony/applications_app_samples/tree/master/Graphics/Screenshot) | 本示例通过screenshot模块实现屏幕截图 ,通过window模块实现隐私窗口切换,通过display模块查询当前隐私窗口。 | | 窗口 | [Screenshot: 截屏](https://gitee.com/openharmony/applications_app_samples/tree/master/Graphics/Screenshot) | 本示例通过screenshot模块实现屏幕截图 ,通过window模块实现隐私窗口切换,通过display模块查询当前隐私窗口。 |
| 包管理 | [MultiHap: 多HAP](https://gitee.com/openharmony/applications_app_samples/tree/master/bundle/MultiHap) | 本示例展示多HAP开发,简单介绍了多HAP的使用场景,应用包含了一个entry HAP和两个feature HAP,两个feature HAP分别提供了音频和视频播放组件,entry中使用了音频和视频播放组件。 | | 包管理 | [MultiHap: 多HAP](https://gitee.com/openharmony/applications_app_samples/tree/master/bundle/MultiHap) | 本示例展示多HAP开发,简单介绍了多HAP的使用场景,应用包含了一个entry HAP和两个feature HAP,两个feature HAP分别提供了音频和视频播放组件,entry中使用了音频和视频播放组件。 |
| 元能力 | [AbilityStartMode: Ability的启动模式](https://gitee.com/openharmony/applications_app_samples/tree/master/ability/AbilityStartMode) | 本示例展示了在一个Stage模型中,实现standard、singleton、specified多种模式场景。 | | 元能力 | [AbilityStartMode: Ability的启动模式](https://gitee.com/openharmony/applications_app_samples/tree/master/ability/AbilityStartMode) | 本示例展示了在一个Stage模型中,实现standard、singleton、specified多种模式场景。 |
......
# OpenHarmony Release Notes # OpenHarmony Release Notes
## OpenHarmony 3.x Releases ## OpenHarmony 3.x Releases
- [OpenHarmony v3.2 Beta4 (2022-11-30)](OpenHarmony-v3.2-beta4.md)
- [OpenHarmony v3.2 Beta3 (2022-09-30)](OpenHarmony-v3.2-beta3.md) - [OpenHarmony v3.2 Beta3 (2022-09-30)](OpenHarmony-v3.2-beta3.md)
- [OpenHarmony v3.2 Beta2 (2022-07-30)](OpenHarmony-v3.2-beta2.md) - [OpenHarmony v3.2 Beta2 (2022-07-30)](OpenHarmony-v3.2-beta2.md)
- [OpenHarmony v3.2 Beta1 (2022-05-31)](OpenHarmony-v3.2-beta1.md) - [OpenHarmony v3.2 Beta1 (2022-05-31)](OpenHarmony-v3.2-beta1.md)
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
- [JS API差异报告](js-apidiff-v3.1-release.md) - [JS API差异报告](js-apidiff-v3.1-release.md)
- [Native API差异报告](native-apidiff-v3.1-release.md) - [Native API差异报告](native-apidiff-v3.1-release.md)
- [3.1 release相对于3.1 beta变更详细说明](changelog-v3.1-release.md) - [3.1 release相对于3.1 beta变更详细说明](../../changelogs/v3.1-Release/changelog-v3.1-release.md)
此外,本次还发布了OpenHarmony 3.2 Canary (API Version 9 Canary)版本: 此外,本次还发布了OpenHarmony 3.2 Canary (API Version 9 Canary)版本:
[JS API差异报告(API Version 9 Canary)](js-apidiff-v3.2-canary.md) [JS API差异报告(API Version 9 Canary)](js-apidiff-v3.2-canary.md)
...@@ -30,4 +30,4 @@ ...@@ -30,4 +30,4 @@
- [升级服务](js-apidiff-update.md) - [升级服务](js-apidiff-update.md)
- [Web](js-apidiff-web.md) - [Web](js-apidiff-web.md)
- [窗口管理](js-apidiff-window.md) - [窗口管理](js-apidiff-window.md)
- [3.2 beta3相对于3.2 beta2变更详细说明](changelog-v3.2-beta3.md) - [3.2 beta3相对于3.2 beta2变更详细说明](../../changelogs/v3.2-beta3/changelog-v3.2-beta3.md)
# Readme
* JS API接口变更清单
- [元能力](js-apidiff-ability.md)
- [无障碍](js-apidiff-accessibility.md)
- [帐号](js-apidiff-account.md)
- [应用](js-apidiff-application.md)
- [ArkUI](js-apidiff-arkui.md)
- [电源服务](js-apidiff-battery.md)
- [包管理](js-apidiff-bundle.md)
- [网络及通信](js-apidiff-communication.md)
- [语言编译器运行时](js-apidiff-compiler-and-runtime.md)
- [定制](js-apidiff-customization.md)
- [DFX](js-apidiff-dfx.md)
- [分布式数据](js-apidiff-distributed-data.md)
- [分布式硬件](js-apidiff-distributed-hardware.md)
- [文件管理](js-apidiff-file-management.md)
- [位置服务](js-apidiff-geolocation.md)
- [全球化](js-apidiff-global.md)
- [Misc软件](js-apidiff-misc.md)
- [MSDP](js-apidiff-msdp.md)
- [多模输入](js-apidiff-multi-modal-input.md)
- [媒体服务](js-apidiff-multimedia.md)
- [事件与通知](js-apidiff-notification.md)
- [资源调度](js-apidiff-resource-scheduler.md)
- [安全](js-apidiff-security.md)
- [泛Sensor](js-apidiff-sensor.md)
- [启动](js-apidiff-start-up.md)
- [电话服务](js-apidiff-telephony.md)
- [测试服务](js-apidiff-unitest.md)
- [升级](js-apidiff-update.md)
- [USB服务](js-apidiff-usb.md)
- [用户IAM](js-apidiff-user-iam.md)
- [Web](js-apidiff-web.md)
- [窗口](js-apidiff-window.md)
\ No newline at end of file
# security子系统ChangeLog
## cl.security.1 Random的setSeed功能变更,由异步接口改为同步接口
**变更影响**
影响已发布的JS接口,接口行为发生变更。
应用需要进行适配,才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
修改前的接口原型:
setSeed(seed : DataBlob, callback : AsyncCallback\<void>) : void;
setSeed(seed : DataBlob) : Promise\<void>;
修改后的接口原型:
setSeed(seed : DataBlob) : void;
**适配指导**
查看API参考中setSeed对应的接口适配指南:
[加解密算法库框架-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cryptoFramework.md)
## cl.security.2 interface DataArray 从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**变更影响**
影响已发布的JS接口,接口行为发生变更。
应用需要进行适配,才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
interface DataArray从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**适配指导**
重新import并使用对应的.d.ts文件:
import cryptoCert from '@ohos.security.cert';
查看API参考中对应的接口适配指南:
[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
## cl.security.3 interface EncodingFormat从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**变更影响**
影响已发布的JS接口,接口行为发生变更。
应用需要进行适配,才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
interface EncodingFormat从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**适配指导**
重新import并使用对应的.d.ts文件:
import cryptoCert from '@ohos.security.cert';
查看API参考中对应的接口适配指南:
[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
## cl.security.4 interface EncodingBlob 从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**变更影响**
影响已发布的JS接口,接口行为发生变更。
应用需要进行适配,才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
interface EncodingBlob 从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**适配指导**
重新import并使用对应的.d.ts文件:
import cryptoCert from '@ohos.security.cert';
查看API参考中对应的接口适配指南:
[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
## cl.security.5 interface CertChainData从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**变更影响**
影响已发布的JS接口,接口行为发生变更。
应用需要进行适配,才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
interface CertChainData从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**适配指导**
重新import并使用对应的.d.ts文件:
import cryptoCert from '@ohos.security.cert';
查看API参考中对应的接口适配指南:
[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
## cl.security.6 interface X509Cert从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**变更影响**
影响已发布的JS接口,接口行为发生变更。
应用需要进行适配,才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
interface X509Cert从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**适配指导**
重新import并使用对应的.d.ts文件:
import cryptoCert from '@ohos.security.cert';
查看API参考中对应的接口适配指南:
[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
## cl.security.7 function createX509Cert从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**变更影响**
影响已发布的JS接口,接口行为发生变更。
应用需要进行适配,才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
function createX509Cert从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**适配指导**
重新import并使用对应的.d.ts文件:
import cryptoCert from '@ohos.security.cert';
查看API参考中对应的接口适配指南:
[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
## cl.security.8 interface X509CrlEntry从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**变更影响**
影响已发布的JS接口,接口行为发生变更。
应用需要进行适配,才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
interface X509CrlEntry从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**适配指导**
重新import并使用对应的.d.ts文件:
import cryptoCert from '@ohos.security.cert';
查看API参考中对应的接口适配指南:
[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
## cl.security.9 interface X509Crl从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**变更影响**
影响已发布的JS接口,接口行为发生变更。
应用需要进行适配,才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
interface X509Crl从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**适配指导**
重新import并使用对应的.d.ts文件:
import cryptoCert from '@ohos.security.cert';
查看API参考中对应的接口适配指南:
[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
## cl.security.10 function createX509Crl从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**变更影响**
影响已发布的JS接口,接口行为发生变更。
应用需要进行适配,才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
function createX509Crl从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**适配指导**
重新import并使用对应的.d.ts文件:
import cryptoCert from '@ohos.security.cert';
查看API参考中对应的接口适配指南:
[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
## cl.security.11 interface CertChainValidator从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**变更影响**
影响已发布的JS接口,接口行为发生变更。
应用需要进行适配,才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
interface CertChainValidator从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**适配指导**
重新import并使用对应的.d.ts文件:
import cryptoCert from '@ohos.security.cert';
查看API参考中对应的接口适配指南:
[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
## cl.security.12 function createCertChainValidator从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**变更影响**
影响已发布的JS接口,接口行为发生变更。
应用需要进行适配,才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
function createCertChainValidator从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**适配指导**
重新import并使用对应的.d.ts文件:
import cryptoCert from '@ohos.security.cert';
查看API参考中对应的接口适配指南:
[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
## cl.security.13 X509Cert 的getPublicKey功能变更,由异步接口改为同步接口
**变更影响**
影响已发布的JS接口,接口行为发生变更。
应用需要进行适配,才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
修改前的接口原型:
getPublicKey(callback : AsyncCallback\<PubKey>) : void;
getPublicKey() : Promise\<PubKey>;
修改后的接口原型:
getPublicKey() : cryptoFramework.PubKey;
**适配指导**
查看API参考中对应的接口适配指南:
[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
## cl.security.14 X509Cert 的checkValidityWithDate功能变更,由异步接口改为同步接口
**变更影响**
影响已发布的JS接口,接口行为发生变更。
应用需要进行适配,才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
修改前的接口原型:
checkValidityWithDate(date: string, callback : AsyncCallback\<void>) : void;
checkValidityWithDate(date: string) : Promise\<void>;
修改后的接口原型:
checkValidityWithDate(date: string) : void;
**适配指导**
查看API参考中对应的接口适配指南:
[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
## cl.security.15 X509CrlEntry 的getCertIssuer功能变更,由异步接口改为同步接口
**变更影响**
影响已发布的JS接口,接口行为发生变更。
应用需要进行适配,才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
修改前的接口原型:
getCertIssuer(callback : AsyncCallback\<DataBlob>) : void;
getCertIssuer() : Promise\<DataBlob>;
修改后的接口原型:
getCertIssuer() : DataBlob;
**适配指导**
查看API参考中对应的接口适配指南:
[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
## cl.security.16 X509CrlEntry 的getRevocationDate功能变更,由异步接口改为同步接口
**变更影响**
影响已发布的JS接口,接口行为发生变更。
应用需要进行适配,才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
修改前的接口原型:
getRevocationDate(callback : AsyncCallback\<string>) : void;
getRevocationDate() : Promise\<string>;
修改后的接口原型:
getRevocationDate() : string;
**适配指导**
查看API参考中对应的接口适配指南:
[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
## cl.security.17 X509Crl 的isRevoked功能变更,由异步接口改为同步接口
**变更影响**
影响已发布的JS接口,接口行为发生变更。
应用需要进行适配,才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
修改前的接口原型:
isRevoked(cert : X509Cert, callback : AsyncCallback\<boolean>) : void;
isRevoked(cert : X509Cert) : Promise\<boolean>;
修改后的接口原型:
isRevoked(cert : X509Cert) : boolean;
**适配指导**
查看API参考中对应的接口适配指南:
[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
## cl.security.18 X509Crl 的getRevokedCert功能变更,由异步接口改为同步接口
**变更影响**
影响已发布的JS接口,接口行为发生变更。
应用需要进行适配,才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
修改前的接口原型:
getRevokedCert(serialNumber : number, callback : AsyncCallback\<X509CrlEntry>) : void;
getRevokedCert(serialNumber : number) : Promise\<X509CrlEntry>;
修改后的接口原型:
getRevokedCert(serialNumber : number) : X509CrlEntry;
**适配指导**
查看API参考中对应的接口适配指南:
[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
## cl.security.19 X509Crl 的getRevokedCertWithCert功能变更,由异步接口改为同步接口
**变更影响**
影响已发布的JS接口,接口行为发生变更。
应用需要进行适配,才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
修改前的接口原型:
getRevokedCertWithCert(cert : X509Cert, callback : AsyncCallback\<X509CrlEntry>) : void;
getRevokedCertWithCert(cert : X509Cert) : Promise\<X509CrlEntry>;
修改后的接口原型:
getRevokedCertWithCert(cert : X509Cert) : X509CrlEntry;
**适配指导**
查看API参考中对应的接口适配指南:
[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
## cl.security.20 X509Crl 的getTbsInfo功能变更,由异步接口改为同步接口
**变更影响**
影响已发布的JS接口,接口行为发生变更。
应用需要进行适配,才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
修改前的接口原型:
getTbsInfo(callback : AsyncCallback\<DataBlob>) : void;
getTbsInfo() : Promise\<DataBlob>;
修改后的接口原型:
getTbsInfo() : DataBlob;
**适配指导**
查看API参考中对应的接口适配指南:
[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
# 元能力子系统JS API变更Changelog
OpenHarmony 3.2.10.1(Mr)版本相较于OpenHarmony 3.2.beta4版本,元能力子系统的API变更如下
## cl.ability.1 接口迁移
ability子系统UIAbilityContext的接口requestPermissionsFromUser迁移到security子系统:
之前权限弹窗应用是基于UIAbility实现的,需要借助于UIAbilityContext的startAbilityForResult接口把授权结果带回给调用方,故把requestPermissionsFromUser接口暂时放在UIAbilityContext中。现在权限弹窗应用切换为基于ServiceExtensionAbility实现,不再需要借助UIAbilityContext的startAbilityForResult接口,因此把requestPermissionsFromUser接口迁移到security子系统。
开发者需要根据以下说明对应用进行适配。
**变更影响**
影响API9版本的JS接口,应用需要进行适配才可以在新版本SDK环境正常实现功能。
**关键的接口/组件变更**
| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 |
| ------------------------- | ------------------- | ------------------------------------------------------------ | -------- |
| application/UIAbilityContext | UIAbilityContext | requestPermissionsFromUser(permissions: Array<string>, requestCallback: AsyncCallback<PermissionRequestResult>): void; | 删除 |
| application/UIAbilityContext | UIAbilityContext | requestPermissionsFromUser(permissions: Array<string>): Promise<PermissionRequestResult>; | 删除 |
| @ohos.abilityAccessCtrl | AtManager | requestPermissionsFromUser(context: Context, permissions: Array<Permissions>, requestCallback: AsyncCallback<PermissionRequestResult>) : void; | 新增 |
| @ohos.abilityAccessCtrl | AtManager | requestPermissionsFromUser(context: Context, permissions: Array<Permissions>) : Promise<PermissionRequestResult>; | 新增 |
**适配指导**
应用中调用requestPermissionsFromUser拉起权限弹窗应用可参考下列代码
Stage模型下的示例:
```ts
import abilityAccessCtrl from '@ohos.abilityAccessCtrl.d.ts';
//UIAbility的onWindowStageCreate生命周期
onWindowStageCreate() {
let AtManager = abilityAccessCtrl.createAtManager();
//requestPermissionsFromUser会判断权限的授权状态来决定是否唤起弹窗
AtManager.requestPermissionsFromUser(this.context, ["ohos.permission.MANAGE_DISPOSED_APP_STATUS"]).then((data) => {
console.log("data type:" + typeof(data));
console.log("data:" + data);
console.log("data permissions:" + data.permissions);
console.log("data result:" + data.authResults);
}).catch((err) => {
console.error('Failed to start ability', err.code);
})
}
```
\ No newline at end of file
# 分布式数据管理子系统JS API变更Changelog
OpenHarmony 3.2.10.1(Mr)版本相较于OpenHarmony 3.2.beta4版本,分布式数据管理子系统的API变更如下
## cl.distributeddatamgr.1 接口变更
distributeddatamgr子系统kv_store组件接口存在变更:
由于执行时间固定且耗时短,不需要异步等待执行结果,createKVManager方法需要改为同步接口。因此旧的接口function createKVManager(config: KVManagerConfig): Promise\<KVManager\>; 与 function createKVManager(config: KVManagerConfig, callback: AsyncCallback<KVManager>): void; 改为 function createKVManager(config: KVManagerConfig): KVManager;
开发者需要根据以下说明对应用进行适配。
**变更影响**
影响API9版本的JS接口,应用需要进行适配才可以在新版本SDK环境正常实现功能。
**关键的接口/组件变更**
| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 |
| ------------------------- | ------------------- | ------------------------------------------------------------ | -------- |
| @ohos.distributedKVStore | distributedKVStore | function createKVManager(config: KVManagerConfig): Promise\<KVManager\>; | 删除 |
| @ohos.distributedKVStore | distributedKVStore | function createKVManager(config: KVManagerConfig): KVManager; | 变更 |
**适配指导**
应用中调用createKVManager创建KVManager对象实例可参考下列代码
Stage模型下的示例:
```ts
import AbilityStage from '@ohos.application.Ability'
let kvManager;
export default class MyAbilityStage extends AbilityStage {
onCreate() {
console.log("MyAbilityStage onCreate")
let context = this.context
const kvManagerConfig = {
context: context,
bundleName: 'com.example.datamanagertest',
}
try {
kvManager = distributedKVStore.createKVManager(kvManagerConfig);
} catch (e) {
console.error(`Failed to create KVManager.code is ${e.code},message is ${e.message}`);
}
}
}
```
FA模型下的示例:
```ts
import featureAbility from '@ohos.ability.featureAbility'
let kvManager;
let context = featureAbility.getContext()
const kvManagerConfig = {
context: context,
bundleName: 'com.example.datamanagertest',
}
try {
kvManager = distributedKVStore.createKVManager(kvManagerConfig);
} catch (e) {
console.error(`Failed to create KVManager.code is ${e.code},message is ${e.message}`);
}
```
\ No newline at end of file
# url系统JS API变更Changelog
OpenHarmony 3.2.10.1(Mr)版本相较于OpenHarmony 3.2.beta4版本,url子系统的API变更如下
## cl.url.1.URLParams类接口变更
url子系统URLParams类构造函数存在变更:
constructor(init?: string[][] | Record<string, string> | string | URLSearchParams) 改为 constructor(init?: string[][] | Record<string, string> | string | URLParams);参数类型为原来的URLSearchParams类改为URLParams类。
开发者需要根据以下说明对应用进行适配。
**变更影响**
影响API9版本的JS接口,应用需要进行适配才可以在新版本SDK环境正常实现功能。
**关键的接口/组件变更**
| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 |
| :------------------------ | ------------------- | ------------------------------------------------------------ | -------- |
| @ohos.url | URLParams | constructor(string[][] \| Record&lt;string, string&gt; \| string \| URLSearchParams) | 删除 |
| @ohos.url | URLParams | constructor(string[][] \| Record&lt;string, string&gt; \| string \| URLParams)| 变更
**适配指导**
应用中创建URLParams对象实例可参考下列代码
示例:
```ts
import url from '@ohos.url'
try {
let params1 = new Url.URLParams('?user=abc&query=xyz')
let params2 = new Url.URLParams(params1)
var result= params2.toString()
console.log(result) //"user=abc&query=xyz"
} catch (err) {
console.error(`Fail to ceate URLParams.codeis${err.code},message is ${err.message}`);
}
```
## cl.url.2.URL类属性变更url子系统URLParams类构造函数存在变更:
url子系统URL类属性存在变更:
废弃searchParams: URLSearchParams属性,新增params: URLParams属性
开发者需要根据以下说明对应用进行适配。
**变更影响**
影响API9版本的JS接口,应用需要进行适配才可以在新版本SDK环境正常实现功能。
**关键的接口/组件变更**
| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 |
| :------------------------ | ------------------- | ------------------------------------------------------------ | -------- |
| @ohos.url | URL | searchParams: URLSearchParams; |废弃版本:9<br> |
| @ohos.url | URL | params: URLParams; | 新增 |
**适配指导**
应用中创建URLParams对象实例可参考下列代码
示例:
```ts
import url from '@ohos.url'
let that = new Url.URL('http://username:password@host:8080/directory/file?你好=china#qwer=da')
let params = that.URLParams
var result = params.toString()
console.log(result) //%E4%BD%A0%E5%A5%BD=china
```
\ No newline at end of file
# 设备管理changeLog
## cl.device_manager.1 API错误信息返回方式变更
设备管理接口使用业务逻辑返回值表示错误信息,不符合OpenHarmony接口错误码规范。从API9开始作以下变更:
异步接口:通过AsyncCallback或Promise的error对象返回错误信息。
同步接口:通过抛出异常的方式返回错误信息。
**变更影响**
基于此前版本开发的应用,需适配接口的错误信息返回方式,否则会影响原有业务逻辑。
**关键接口/组件变更**
在以下接口增加错误码处理:
- createDeviceManager(bundleName: string, callback: AsyncCallback&lt;DeviceManager&gt;): void;
- release(): void;
- getTrustedDeviceListSync(): Array&lt;DeviceInfo&gt;
- getTrustedDeviceList(callback:AsyncCallback&lt;Array&lt;DeviceInfo&gt;&gt;): void;
- getTrustedDeviceList(): Promise&lt;Array&lt;DeviceInfo&gt;&gt;
- getLocalDeviceInfoSync(): DeviceInfo;
- getLocalDeviceInfo(callback:AsyncCallback&lt;DeviceInfo&gt;): void;
- getLocalDeviceInfo(): Promise&lt;DeviceInfo&gt;
- startDeviceDiscovery(subscribeInfo: SubscribeInfo): void;
- startDeviceDiscovery(subscribeInfo: SubscribeInfo, filterOptions?: string): void;
- stopDeviceDiscovery(subscribeId: number): void;
- publishDeviceDiscovery(publishInfo: PublishInfo): void;
- unPublishDeviceDiscovery(publishId: number): void;
- authenticateDevice(deviceInfo: DeviceInfo, authParam: AuthParam, callback: AsyncCallback&lt;{deviceId: string, pinToken ?: number}&gt;): void;
- unAuthenticateDevice(deviceInfo: DeviceInfo): void;
- verifyAuthInfo(authInfo: AuthInfo, callback: AsyncCallback&lt;{deviceId: string, level: number}&gt;): void;
- setUserOperation(operateAction: number, params: string): void;
- on(type: 'uiStateChange', callback: Callback&lt;{ param: string}&gt;): void;
- off(type: 'uiStateChange', callback?: Callback&lt;{ param: string}&gt;): void;
- on(type: 'deviceStateChange', callback: Callback&lt;{ action: DeviceStateChangeAction, device: DeviceInfo }&gt;): void;
- off(type: 'deviceStateChange', callback?: Callback&lt;{ action: DeviceStateChangeAction, device: DeviceInfo }&gt;): void;
- on(type: 'deviceFound', callback: Callback&lt;{ subscribeId: number, device: DeviceInfo }&gt;): void;
- off(type: 'deviceFound', callback?: Callback&lt;{ subscribeId: number, device: DeviceInfo }&gt;): void;
- on(type: 'discoverFail', callback: Callback&lt;{ subscribeId: number, reason: number }&gt;): void;
- off(type: 'discoverFail', callback?: Callback&lt;{ subscribeId: number, reason: number }&gt;): void;
- on(type: 'publishSuccess', callback: Callback&lt;{ publishId: number }&gt;): void;
- off(type: 'publishSuccess', callback?: Callback&lt;{ publishId: number }&gt;): void;
- on(type: 'publishFail', callback: Callback&lt;{ publishId: number, reason: number }&gt;): void;
- off(type: 'publishFail', callback?: Callback&lt;{ publishId: number, reason: number }&gt;): void;
- on(type: 'serviceDie', callback: () =&gt; void): void;
- off(type: 'serviceDie', callback?: () =&gt; void): void;
**适配指导**
异步接口以getTrustedDeviceList为例,示例代码如下:
```ts
import account_osAccount from "@ohos.distributedHardware.deviceManager"
dmInstance.getTrustedDeviceList((err, data) => {
console.log("getTrustedDeviceList err: " + JSON.stringify(err));
console.log('get trusted device info: ' + JSON.stringify(data));
});
try {
dmInstance.getTrustedDeviceList((err, data) => {
if (err) {
console.error("getTrustedDeviceList errCode:" + err.code + ",errMessage:" + err.message);
return;
}
console.log('get trusted device info: ' + JSON.stringify(data));
});
} catch (err) {
console.error("getTrustedDeviceList errCode:" + err.code + ",errMessage:" + err.message);
}
```
同步接口以startDeviceDiscovery为例,示例代码如下:
```ts
// 生成发现标识,随机数确保每次调用发现接口的标识不一致
var subscribeId = Math.floor(Math.random() * 10000 + 1000);
var subscribeInfo = {
"subscribeId": subscribeId,
"mode": 0xAA, // 主动模式
"medium": 0, // 自动发现类型,同时支持多种发现类型
"freq": 2, // 高频率
"isSameAccount": false,
"isWakeRemote": false,
"capability": 1
};
dmInstance.startDeviceDiscovery(subscribeInfo); // 当有设备发现时,通过deviceFound回调通知给应用程序
// 生成发现标识,随机数确保每次调用发现接口的标识不一致
var subscribeId = Math.floor(Math.random() * 10000 + 1000);
var subscribeInfo = {
"subscribeId": subscribeId,
"mode": 0xAA, // 主动模式
"medium": 0, // 自动发现类型,同时支持多种发现类型
"freq": 2, // 高频率
"isSameAccount": false,
"isWakeRemote": false,
"capability": 1
};
try {
dmInstance.startDeviceDiscovery(subscribeInfo); // 当有设备发现时,通过deviceFound回调通知给应用程序
} catch (err) {
console.error("startDeviceDiscovery errCode:" + err.code + ",errMessage:" + err.message);
}
```
# 软总线子系统Changelog
## IPC&RPC API支持异常处理方式和支持传入布尔值与数值选择同步或异步方式发送信息变更
1. 软总线IPC&RPC部分接口使用业务逻辑返回值表示错误信息,不符合Openharmony接口错误规范;
2. 支持传入布尔值选择同步或异步方式发送信息。
#### 变更影响
此版本兼容之前的应用开发,不需要适配,后续可调用新增接口支持以下两个变更:
1. 支持异常处理并返回错误码;
2. 提供通过布尔值或通过0与非0数字选择同步或异步发消息。
#### 关键接口/组件变更
为适配统一的API异常处理方式,对IPC&RPC相关接口进行废弃,并新增对应接口和方法。新增接口支持统一的错误码异常处理规范,功能上与原接口保持一致。
| 类名 | 废弃接口 | 新增替换类名 | 新增替代接口 |
| ------------ | ------------ | ------------ | ------------ |
| MessageParcel | static create(): MessageParcel | MessageSequence | static create(): MessageSequence |
| MessageParcel | reclaim(): void | MessageSequence | reclaim(): void |
| MessageParcel | writeRemoteObject(object: IRemoteObject): boolean| MessageSequence |writeRemoteObject(object: IRemoteObject): void|
| MessageParcel | readRemoteObject(): IRemoteObject | MessageSequence | readRemoteObject(): IRemoteObject |
| MessageParcel | writeInterfaceToken(token: string): boolean | MessageSequence | writeInterfaceToken(token: string): void |
| MessageParcel | readInterfaceToken(): string | MessageSequence | readInterfaceToken(): string |
| MessageParcel | getSize(): number | MessageSequence | getSize(): number |
| MessageParcel | getCapacity(): number | MessageSequence | getCapacity(): number|
| MessageParcel | setSize(size: number): boolean | MessageSequence | setCapacity(size: number): void |
| MessageParcel | getReadableBytes(): number | MessageSequence | getReadableBytes(): number |
| MessageParcel | getReadPosition(): number | MessageSequence | getReadPosition(): number |
| MessageParcel | getWritePosition(): number | MessageSequence | getWritePosition(): number |
| MessageParcel | rewindRead(pos: number): boolean | MessageSequence | rewindRead(pos: number): void |
| MessageParcel | rewindWrite(pos: number): boolean | MessageSequence | rewindWrite(pos: number): void |
| MessageParcel | writeNoException(): void | MessageSequence | writeNoException(): void |
| MessageParcel | readException(): void | MessageSequence | readException(): void |
| MessageParcel | writeByte(val: number): boolean | MessageSequence | writeByte(val: number): void |
| MessageParcel | writeShort(val: number): boolean | MessageSequence | writeShort(val: number): void |
| MessageParcel | writeInt(val: number): boolean | MessageSequence | writeInt(val: number): void |
| MessageParcel | writeLong(val: number): boolean | MessageSequence | writeLong(val: number): void |
| MessageParcel | writeFloat(val: number): boolean | MessageSequence | writeFloat(val: number): void |
| MessageParcel | writeDouble(val: number): boolean | MessageSequence | writeDouble(val: number): void |
| MessageParcel | writeBoolean(val: boolean): boolean | MessageSequence | writeBoolean(val: boolean): void |
| MessageParcel | writeChar(val: number): boolean | MessageSequence | writeChar(val: number): void |
| MessageParcel | writeString(val: string): boolean | MessageSequence | writeString(val: string): void |
| MessageParcel | writeSequenceable(val: Sequenceable): boolean | MessageSequence | writeParcelable(val: Parcelable): void |
| MessageParcel | writeByteArray(byteArray: number[]): boolean | MessageSequence | writeByteArray(byteArray: number[]): void |
| MessageParcel | writeShortArray(shortArray: number[]): boolean | MessageSequence | writeShortArray(shortArray: number[]): void |
| MessageParcel | writeIntArray(intArray: number[]): boolean | MessageSequence | writeIntArray(intArray: number[]): void |
| MessageParcel | writeLongArray(longArray: number[]): boolean | MessageSequence | writeLongArray(longArray: number[]): void |
| MessageParcel | writeFloatArray(floatArray: number[]): boolean | MessageSequence | writeFloatArray(floatArray: number[]): void |
| MessageParcel | writeDoubleArray(doubleArray: number[]): boolean | MessageSequence | writeDoubleArray(doubleArray: number[]): void |
| MessageParcel | writeBooleanArray(booleanArray: boolean[]): boolean | MessageSequence | writeBooleanArray(booleanArray: boolean[]): void |
| MessageParcel | writeCharArray(charArray: number[]): boolean | MessageSequence | writeCharArray(charArray: number[]): void |
| MessageParcel | writeStringArray(stringArray: string[]): boolean | MessageSequence | writeStringArray(stringArray: string[]): void |
| MessageParcel | writeSequenceableArray(sequenceableArray: Sequenceable[]): boolean | MessageSequence | writeParcelableArray(sequenceableArray: Parcelable[]): void |
| MessageParcel | writeRemoteObjectArray(objectArray: IRemoteObject[]): boolean | MessageSequence | writeRemoteObjectArray(objectArray: IRemoteObject[]): void |
| MessageParcel | readByte(): number | MessageSequence | readByte(): number |
| MessageParcel | readShort(): number | MessageSequence | readShort(): number |
| MessageParcel | readLong(): number | MessageSequence | readLong(): number |
| MessageParcel | readFloat(): number | MessageSequence | readFloat(): number |
| MessageParcel | readDouble(): number | MessageSequence | readDouble(): number |
| MessageParcel | readBoolean(): boolean | MessageSequence | readBoolean(): boolean |
| MessageParcel | readChar(): number | MessageSequence | readChar(): number |
| MessageParcel | readString(): string | MessageSequence | readString(): string |
| MessageParcel | readSequenceable(dataIn: Sequenceable) : boolean | MessageSequence | readSequenceable(dataIn: Parcelable) : void |
| MessageParcel | readByteArray(dataIn: number[]) : void | MessageSequence | readByteArray(dataIn: number[]) : void |
| MessageParcel | readByteArray(): number[] | MessageSequence | readByteArray(): number[] |
| MessageParcel | readShortArray(dataIn: number[]) : void | MessageSequence | readShortArray(dataIn: number[]) : void |
| MessageParcel | readShortArray(): number[] | MessageSequence | readShortArray(): number[] |
| MessageParcel | readIntArray(dataIn: number[]) : void | MessageSequence | readIntArray(dataIn: number[]) : void |
| MessageParcel | readIntArray() : number[] | MessageSequence | readIntArray() : number[] |
| MessageParcel | readLongArray(dataIn: number[]) : void | MessageSequence | readLongArray(dataIn: number[]) : void |
| MessageParcel | readLongArray(): number[] | MessageSequence | readLongArray(): number[] |
| MessageParcel | readFloatArray(dataIn: number[]) : void | MessageSequence | readFloatArray(dataIn: number[]) : void |
| MessageParcel | readFloatArray(): number[] | MessageSequence | readFloatArray(): number[] |
| MessageParcel | readDoubleArray(dataIn: number[]) : void | MessageSequence | readDoubleArray(dataIn: number[]) : void |
| MessageParcel | readDoubleArray(): number[] | MessageSequence | readDoubleArray(): number[] |
| MessageParcel | readBooleanArray(dataIn: boolean[]) : void | MessageSequence | readBooleanArray(dataIn: boolean[]) : void |
| MessageParcel | readBooleanArray(): boolean[] | MessageSequence | readBooleanArray(): boolean[] |
| MessageParcel | readCharArray(dataIn: number[]) : void | MessageSequence | readCharArray(dataIn: number[]) : void |
| MessageParcel | readCharArray(): number[] | MessageSequence | readCharArray(): number[] |
| MessageParcel | readStringArray(dataIn: string[]) : void | MessageSequence | readStringArray(dataIn: string[]) : void |
| MessageParcel | readStringArray(): string[] | MessageSequence | readStringArray(): string[] |
| MessageParcel | readSequenceableArray(sequenceableArray: Sequenceable[]): void | MessageSequence | readSequenceableArray(sequenceableArray: Parcelable[]): void |
| MessageParcel | readRemoteObjectArray(objects: IRemoteObject[]): void | MessageSequence | readRemoteObjectArray(objects: IRemoteObject[]): void |
| MessageParcel | readRemoteObjectArray(): IRemoteObject[] | MessageSequence | readRemoteObjectArray(): IRemoteObject[] |
| MessageParcel | static closeFileDescriptor(fd: number): void | MessageSequence | static closeFileDescriptor(fd: number): void |
| MessageParcel | static dupFileDescriptor(fd: number) :number | MessageSequence | static dupFileDescriptor(fd: number) :number |
| MessageParcel | containFileDescriptors(): boolean | MessageSequence | containFileDescriptors(): boolean |
| MessageParcel | writeFileDescriptor(fd: number): boolean | MessageSequence | writeFileDescriptor(fd: number): void |
| MessageParcel | readFileDescriptor(): number | MessageSequence | readFileDescriptor(): number |
| MessageParcel | writeAshmem(ashmem: Ashmem): boolean | MessageSequence | writeAshmem(ashmem: Ashmem): void |
| MessageParcel | readAshmem(): Ashmem | MessageSequence | readAshmem(): Ashmem |
| MessageParcel | writeRawData(rawData: number[], size: number): boolean | MessageSequence | writeRawData(rawData: number[], size: number): void |
| MessageParcel | readRawData(size: number): number[] | MessageSequence | readRawData(size: number): number[] |
| Sequenceable | marshalling(dataOut: MessageParcel): boolean | Parcelable | marshalling(dataOut: MessageSequence): boolean |
| Sequenceable | unmarshalling(dataIn: MessageParcel) : boolean | Parcelable | unmarshalling(dataIn: MessageSequence) : boolean |
| SendRequestResult | errCode: number | RequestResult | errCode: number |
| SendRequestResult | code: number | RequestResult | code: number |
| SendRequestResult | data: MessageParcel | RequestResult | data: MessageSequence |
| SendRequestResult | reply: MessageParcel | RequestResult | reply: MessageSequence |
| IRemoteObject | queryLocalInterface(descriptor: string): IRemoteBroker | NA | getLocalInterface(descriptor: string): IRemoteBroker |
| IRemoteObject | getInterfaceDescriptor(): string | NA | getDescriptor(): string |
| IRemoteObject | addDeathRecipient(recipient: DeathRecipient, flags: number): boolean | NA | registerDeathRecipient(recipient: DeathRecipient, flags: number): void |
| IRemoteObject | removeDeathRecipient(recipient: DeathRecipient, flags: number): boolean | NA | unregisterDeathRecipient(recipient: DeathRecipient, flags: number): void |
| IRemoteObject | NA | NA | sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, options: MessageOption): Promise<RequestResult> |
| IRemoteObject | sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: MessageOption, callback: AsyncCallback<SendRequestResult>): void | NA | sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, options: MessageOption,callback: AsyncCallback<RequestResult>): void |
| MessageOption | NA | NA | isAsync(): boolean |
| MessageOption | NA | NA | setAsync(async: boolean): void |
| MessageOption | NA | NA | constructor(async?: boolean) |
| RemoteObject | queryLocalInterface(descriptor: string): IRemoteBroker | NA | getLocalInterface(descriptor: string): IRemoteBroker |
| RemoteObject | attachLocalInterface(localInterface: IRemoteBroker, descriptor: string): void | NA | modifyLocalInterface(localInterface: IRemoteBroker, descriptor: string): void |
| RemoteObject | getInterfaceDescriptor(): string | NA | getDescriptor(): string |
| RemoteObject | NA | NA | onRemoteMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, options: MessageOption): boolean&nbsp;\|&nbsp;Promise<boolean> |
| RemoteObject | sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: MessageOption): Promise<SendRequestResult> | NA | sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, options: MessageOption): Promise<RequestResult> |
| RemoteObject | sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: MessageOption, callback: AsyncCallback<SendRequestResult>): void | NA | sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, options: MessageOption, callback: AsyncCallback<RequestResult>): void |
| RemoteProxy | queryLocalInterface(interface: string): IRemoteBroker | NA | getLocalInterface(descriptor: string): IRemoteBroker |
| RemoteProxy | getInterfaceDescriptor(): string | NA | getDescriptor(): string |
| RemoteProxy | addDeathRecipient(recipient: DeathRecipient, flags: number): boolean | NA | registerDeathRecipient(recipient: DeathRecipient, flags: number): void |
| RemoteProxy | removeDeathRecipient(recipient: DeathRecipient, flags: number): boolean | NA | unregisterDeathRecipient(recipient: DeathRecipient, flags: number): void |
| RemoteProxy | NA | NA | sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, options: MessageOption): Promise<RequestResult> |
| RemoteProxy | sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: MessageOption, callback: AsyncCallback<SendRequestResult>): void | NA | sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, options: MessageOption, callback: AsyncCallback<RequestResult>): void |
| IPCSkeleton | static flushCommands(object: IRemoteObject): number | NA | static flushCmdBuffer(object: IRemoteObject): void |
| IPCSkeleton | static setCallingIdentity(identity: string): boolean | NA | static restoreCallingIdentity(identity: string): void |
| Ashmem | static createAshmem(name: string, size: number): Ashmem | NA | static create(name: string, size: number): Ashmem |
| Ashmem | static createAshmemFromExisting(ashmem: Ashmem): Ashmem | NA | static create(ashmem: Ashmem): Ashmem |
| Ashmem | mapAshmem(mapType: number): boolean | NA | mapTypedAshmem(mapType: number): void |
| Ashmem | mapReadAndWriteAshmem(): boolean | NA | mapReadWriteAshmem(): void |
| Ashmem | mapReadOnlyAshmem(): boolean | NA | mapReadonlyAshmem(): void |
| Ashmem | setProtection(protectionType: number): boolean | NA | setProtectionType(protectionType: number): void |
| Ashmem | writeToAshmem(buf: number[], size: number, offset: number): boolean | NA | writeAshmem(buf: number[], size: number, offset: number): void |
| Ashmem | readFromAshmem(size: number, offset: number): number[] | NA | readAshmem(size: number, offset: number): number[] |
#### 适配指导
新增的接口以抛异常的方式返回错误码及对应的错误信息,以MessageParcel中的create接口为例,使用示例代码如下:
```js
import rpc from '@ohos.rpc'
try {
var data = rpc.MessageParcel.create();
data.reclaim();
} catch (error) {
console.info("create meassageParcel failed, errorCode = " + error.errCode);
console.info("create meassageParcel failed, errorMessage = " + error.errorMessage);
}
```
更多接口的示例代码可参考[RPC通信API文档](../../../application-dev/reference/apis/js-apis-rpc.md)
\ No newline at end of file
# 全球化子系统ChangeLog
## cl.global.1 国际化模块接口支持错误码
全球化子系统国际化组件在如下场景中提供的接口修改为支持错误码。从API9开始作以下变更:
- 获取国家、语言的本地化显示
- 获取系统支持的语言列表、语言支持的地区列表
- 判断语言与地区是否匹配
- 获取、设置系统语言、系统国家或地区、系统区域
- 获取、设置系统24小时制
- 获取、添加、移除系统偏好语言
- 获取、设置本地化数字
开发者需要根据以下说明对应用进行适配。
**变更影响**
上述接口修改为System类的静态方法,调用时需要在模块名后加上类名。
设置类接口,返回值由boolean类型修改为void类型。例如,setSystemLanguage接口。
接口调用失败时会根据失败原因抛出相应的错误码。例如,当应用未正确配置权限时,抛出201错误码。
**关键的接口/组件变更**
- 涉及接口
- getDisplayCountry(country: string, locale: string, sentenceCase?: boolean): string;
- getDisplayLanguage(language: string, locale: string, sentenceCase?: boolean): string;
- getSystemLanguages(): Array<string>;
- getSystemCountries(language: string): Array<string>;
- isSuggested(language: string, region?: string): boolean;
- getSystemLanguage(): string;
- setSystemLanguage(language: string): void;
- getSystemRegion(): string;
- setSystemRegion(region: string): void;
- getSystemLocale(): string;
- setSystemLocale(locale: string): void;
- is24HourClock(): boolean;
- set24HourClock(option: boolean): void;
- addPreferredLanguage(language: string, index?: number): void;
- removePreferredLanguage(index: number): void;
- getPreferredLanguageList(): Array<string>;
- getFirstPreferredLanguage(): string;
- getAppPreferredLanguage(): string;
- setUsingLocalDigit(flag: boolean): void;
- getUsingLocalDigit(): boolean;
**适配指导**
使用try-catch块捕获接口抛出的日常。
```
import I18n from '@ohos.i18n'
try {
I18n.System.setSystemLanguage('zh');
} catch(error) {
console.error(`call System.setSystemLanguage failed, error code: ${error.code}, message: ${error.message}.`)
}
```
\ No newline at end of file
# 包管理子系统ChangeLog
## cl.bundlemanager.1 包管理API异常处理方式变更,原有API8及之前的接口全部废弃,需要使用新的API9接口
包管理接口使用业务逻辑返回值表示错误信息,不符合OpenHarmony接口错误码规范。对原有接口进行整改,原有API8及之前的接口全部废弃,需要使用新的API9接口。
**变更影响**
基于OpenHarmony3.2.8.2及之后的SDK版本开发的应用,需适配API9的模块和接口,以及的API异常处理返回方式,否则会影响原有业务逻辑。
**关键接口/组件变更**
新增接口按照模块进行了划分,将原有的的d.ts分成多个d.ts,可以根据业务需要导入不同的d.ts。新增接口支持统一的错误码异常处理规范,功能上与原接口保持一致。部分功能有变更或者新增的接口会单独列出。
为适配统一的API异常处理方式,对包管理API8及之前的接口进行废弃(下表中**原接口**列内容),并新增对应API9接口(下表中**新接口**列内容)。
| 原接口(废弃) | 新接口(新增) |
| ------ | ------ |
| @ohos.bundle.d.ts | [@ohos.bundle.bundleManager.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.bundle.bundleManager.d.ts) |
| @ohos.bundle.d.ts | [@ohos.bundle.freeInstall.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.bundle.freeInstall.d.ts) |
| @ohos.bundle.d.ts | [@ohos.bundle.installer.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.bundle.installer.d.ts) |
| @ohos.bundle.innerBundleManager.d.ts | [@ohos.bundle.launcherBundleManager.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.bundle.launcherBundleManager.d.ts) |
| @ohos.bundle.innerBundleManager.d.ts | [@ohos.bundle.bundleMonitor.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.bundle.bundleMonitor.d.ts) |
| @ohos.bundle.defaultAppManager.d.ts | [@ohos.bundle.defaultAppManager.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.bundle.defaultAppManager.d.ts) |
| @ohos.distributedBundle.d.ts | [@ohos.bundle.distributedBundle.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.bundle.distributedBundle.d.ts) |
| 无 | [@ohos.bundle.appControl.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.bundle.appControl.d.ts) |
| @system.package.d.ts | 无 |
**适配指导**<br>
1. 调用包管理查询相关接口。
```
import bundle form '@ohos.bundle.bundleManager'
```
2. 调用包管理安装卸载相关接口
```
import installer form '@ohos.bundle.installer'
```
3. 调用包管理免安装相关接口
```
import freeInstall form '@ohos.bundle.freeInstall'
```
4. 调用包管理launcher相关接口
```
import launcherBundleManager form '@ohos.bundle.launcherBundleManager'
import bundleMonitor form '@ohos.bundle.bundleMonitor'
```
6. 调用包管理默认应用相关接口
```
import defaultAppManager form '@ohos.bundle.defaultAppManager'
```
7. 调用包管理分布式相关接口
```
import distributedBundle form '@ohos.bundle.distributedBundle'
```
此外还需要适配异常处理,具体参考新接口的接口文档。
## cl.bundlemanager.2 包管理API结构体变更,原有API8及之前的结构体全部废弃,需要使用新的API9结构体
包管理接口使用业务逻辑返回值表示错误信息,不符合OpenHarmony接口错误码规范。原有API8及之前的结构体全部废弃,需要使用新的API9结构体。
**变更影响**
基于OpenHarmony3.2.8.2及之后的SDK版本开发的应用,需适配变更结构体,否则会影响原有业务逻辑。原有二级模块的导出功能也会废弃,需要使用新接口的二级模块到处能力,需要导入新的一级d.ts模块。
**关键接口/组件变更**
新增结构体对原有的API8及之前的结构体进行梳理,将原有API8及之前的结构体全部废弃,新增新的API9结构体,变更前后的对比如下表所示,部分结构体进行了合并,例如moduleInfo.d.ts替换为hapModuleInfo.d.ts,customizeData.d.ts替换为metadata.d.ts。结构体功能上与原结构体保持一致。部分功能有变更或者新增的结构体属性会单独列出。
| 原结构体(废弃) | 新结构体(新增) |
| ------ | ------ |
| bundle/abilityInfo.d.ts | [bundleManager/abilityInfo.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/abilityInfo.d.ts) |
| bundle/applicationInfo.d.ts | [bundleManager/applicationInfo.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/applicationInfo.d.ts) |
| bundle/bundleInfo.d.ts | [bundleManager/bundleInfo.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/bundleInfo.d.ts) |
| bundle/bundleInstaller.d.ts | [@ohos.bundle.installer.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.bundle.installer.d.ts) |
| bundle/bundleStatusCallback.d.ts | [@ohos.bundle.bundleMonitor.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.bundle.bundleMonitor.d.ts) |
| bundle/customizeData.d.ts | [bundleManager/metadata.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/metadata.d.ts) |
| bundle/dispatchInfo.d.ts | [bundleManager/dispatchInfo.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/dispatchInfo.d.ts) |
| bundle/elementName.d.ts | [bundleManager/elementName.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/elementName.d.ts) |
| bundle/extensionAbilityInfo.d.ts | [bundleManager/extensionAbilityInfo.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/extensionAbilityInfo.d.ts) |
| bundle/hapModuleInfo.d.ts | [bundleManager/hapModuleInfo.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/hapModuleInfo.d.ts) |
| bundle/launcherAbilityInfo.d.ts | [bundleManager/launcherAbilityInfo.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/launcherAbilityInfo.d.ts) |
| bundle/metadata.d.ts | [bundleManager/metadata.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/metadata.d.ts) |
| bundle/moduleInfo.d.ts | [bundleManager/hapModuleInfo.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/hapModuleInfo.d.ts) |
| bundle/packInfo.d.ts | [bundleManager/packInfo.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/packInfo.d.ts) |
| bundle/PermissionDef.d.ts | [bundleManager/permissionDef.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/permissionDef.d.ts) |
| bundle/remoteAbilityInfo.d.ts | [bundleManager/remoteAbilityInfo.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/remoteAbilityInfo.d.ts) |
| bundle/shortcutInfo.d.ts | [bundleManager/shortcutInfo.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/shortcutInfo.d.ts) |
**适配指导**<br>
1. 使用原有结构体的代码需要修改为新结构体。
2. 原有二级模块的导出功能也会废弃,可以使用新接口的二级模块到处能力,需要导入新的一级d.ts模块。
## cl.bundlemanager.3 包管理查询模块接口变更,@ohos.bundle.d.ts中接口全部废弃,新增@ohos.bundle.bundleManager.d.ts、@ohos.bundle.freeInstall.d.ts和@ohos.bundle.installer.d.ts模块,将原有接口新增或者变更至新d.ts中
包管理模块查询接口变更,废弃了@ohos.bundle中API8及之前的全部接口,其中的API9接口变更至@ohos.bundle.bundleManager、@ohos.bundle.freeInstall和@ohos.bundle.installer中,@ohos.bundle.bundleManager中新增了之前废弃的大部分接口,修改为systemapi,并增加了异常处理能力。
使用方式的变化:由原来的@ohos.bundle修改为@ohos.bundle.bundleManager、@ohos.bundle.freeInstall和@ohos.bundle.installer模块来使用相关的接口。
@ohos.bundle.bundleManager和@ohos.bundle.installer模块系统能力为SystemCapability.BundleManager.BundleFramework.Core,@ohos.bundle.freeInstall模块系统能力为SystemCapability.BundleManager.BundleFramework.FreeInstall。
**变更影响**<br>
对原有使用API version 9之前的应用无影响,使用API version 9的应用需要适配新模块和新接口。在@ohos.bundle原有的API9接口,变更到新的@ohos.bundle.bundleManager.d.ts、@ohos.bundle.freeInstall和@ohos.bundle.installer文件中。
**关键的接口/组件变更**<br>
@ohos.bundle.d.ts中涉及到的废弃和变更接口如下表所示。未在表格中列出的表明除了增加异常处理和变更导入模块外,接口名称和入参均未发生变化,直接导入新的@ohos.bundle.bundleManager.d.ts、@ohos.bundle.freeInstall和@ohos.bundle.installer就可使用。在表格中列出的均表示在API9接口上发生变更,标记为无的表示在API9上已废弃。
| 原接口(废弃) | 新接口(变更或新增)| systemapi|新文件名|
| ---| ---| --- | --|
| BundleFlag | BundleFlag | 否 | @ohos.bundle.bundleManager.d.ts |
| 无 | ApplicationFlag | 是 | @ohos.bundle.bundleManager.d.ts |
| 无 | AbilityFlag | 是 | @ohos.bundle.bundleManager.d.ts |
| ExtensionFlag | ExtensionAbilityFlag | 是 | @ohos.bundle.bundleManager.d.ts |
| ColorMode | 无 | 否 | 无 |
| GrantStatus | PermissionGrantState | 否 | @ohos.bundle.bundleManager.d.ts |
| AbilityType | AbilityType | 否 | @ohos.bundle.bundleManager.d.ts |
| AbilitySubType | 无 | 否 | 无 |
| DisplayOrientation | DisplayOrientation | 否 | @ohos.bundle.bundleManager.d.ts |
| LaunchMode | LaunchType | 否 | @ohos.bundle.bundleManager.d.ts |
| ExtensionAbilityType | ExtensionAbilityType | 是 | @ohos.bundle.bundleManager.d.ts |
| BundleOptions | 无 | 否 | 无 |
| InstallErrorCode | 无 | 否 | 无 |
| UpgradeFlag | UpgradeFlag | 是 | @ohos.bundle.freeInstall.d.ts |
| SupportWindowMode | SupportWindowMode | 否 | @ohos.bundle.bundleManager.d.ts |
| getBundleInfo | getBundleInfo | 是 | @ohos.bundle.bundleManager.d.ts |
| getBundleInstaller | getBundleInstaller | 是 | @ohos.bundle.installer.d.ts |
| getAbilityInfo | queryAbilityInfo | 是 | @ohos.bundle.bundleManager.d.ts |
| getApplicationInfo | getApplicationInfo | 是 | @ohos.bundle.bundleManager.d.ts |
| queryAbilityByWant | queryAbilityInfo | 是 | @ohos.bundle.bundleManager.d.ts |
| getAllBundleInfo | getAllBundleInfo | 是 | @ohos.bundle.bundleManager.d.ts |
| getAllApplicationInfo | getAllApplicationInfo | 是 | @ohos.bundle.bundleManager.d.ts |
| getNameForUid | getBundleNameByUid | 是 | @ohos.bundle.bundleManager.d.ts |
| getBundleArchiveInfo |getBundleArchiveInfo | 是 | @ohos.bundle.bundleManager.d.ts |
| getLaunchWantForBundle | getLaunchWantForBundle | 是 | @ohos.bundle.bundleManager.d.ts |
| cleanBundleCacheFiles | cleanBundleCacheFiles | 是 | @ohos.bundle.bundleManager.d.ts |
| setApplicationEnabled | setApplicationEnabled | 是 | @ohos.bundle.bundleManager.d.ts |
| setAbilityEnabled | setAbilityEnabled | 是 | @ohos.bundle.bundleManager.d.ts |
| queryExtensionAbilityInfos | queryExtensionAbilityInfo | 是 | @ohos.bundle.bundleManager.d.ts |
| getPermissionDef | getPermissionDef | 是 | @ohos.bundle.bundleManager.d.ts |
| getAbilityLabel | getAbilityLabel | 是 | @ohos.bundle.bundleManager.d.ts |
| getAbilityIcon | getAbilityIcon | 是 | @ohos.bundle.bundleManager.d.ts |
| isAbilityEnabled | isAbilityEnabled | 是 | @ohos.bundle.bundleManager.d.ts |
| isApplicationEnabled | isApplicationEnabled | 是 | @ohos.bundle.bundleManager.d.ts |
| setModuleUpgradeFlag | setHapModuleUpgradeFlag | 是 | @ohos.bundle.freeInstall.d.ts |
| isModuleRemovable | isHapModuleRemovable | 是 | @ohos.bundle.freeInstall.d.ts |
| getBundlePackInfo | getBundlePackInfo | 是 | @ohos.bundle.freeInstall.d.ts |
| getDispatcherVersion | getDispatchInfo | 是 | @ohos.bundle.freeInstall.d.ts |
| getProfileByAbility | getProfileByAbility | 否 | @ohos.bundle.bundleManager.d.ts |
| getProfileByExtensionAbility | getProfileByExtensionAbility | 否 | @ohos.bundle.bundleManager.d.ts |
| setDisposedStatus | setDisposedStatus | 是 | @ohos.bundle.appControl.d.ts |
| getDisposedStatus | getDisposedStatus | 是 | @ohos.bundle.appControl.d.ts |
| 无 | deleteDisposedStatus | 是 | @ohos.bundle.appControl.d.ts |
| getBundleInfoSync | getBundleInfoSync | 是 | @ohos.bundle.bundleManager.d.ts |
| getApplicationInfoSync | getApplicationInfoSync | 是 | @ohos.bundle.bundleManager.d.ts |
|无| getBundleInfoForSelf | 否 | @ohos.bundle.bundleManager.d.ts |
**适配指导**<br>
将原接口替换为API9新增的接口,导入相关的模块。
旧的导入模块:
```
import bundle form '@ohos.bundle'
```
新的导入模块:
```
import bundle form '@ohos.bundle.bundleManager'
import freeInstall form '@ohos.bundle.freeInstall'
import installer form '@ohos.bundle.installer'
import appControl form '@ohos.bundle.appControl'
```
## cl.bundlemanager.4 BundleInfo结构体变更,包管理原有bundle/bundleInfo.d.ts字段全部废弃变更为bundleManager/bundleInfo.d.ts,涉及字段属性变化。
包管理原有bundle/bundleInfo.d.ts字段全部废弃。由老的[bundle/bundleInfo.d.ts]((https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundle/bundleInfo.d.ts))变更为[bundleManager/bundleInfo.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/bundleInfo.d.ts),涉及字段属性变化。
**变更影响**<br>
对原有使用API version 9之前的应用无影响,使用API version 9的应用需要适配新模块和新接口。使用二级模块导出BundleInfo时,需要导入@ohos.bundle.bundleManager模块。
**关键的接口/组件变更**<br>
BundleInfo结构体发生变化的字段内容如下表所示。其余字段在bundle/bundleInfo.d.ts中废弃后,在新的[bundleManager/bundleInfo.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/bundleInfo.d.ts)中均有对应值。没有对应字段,则表明该字段已经在API9上废弃。
| 已废弃 | API9新增或变更 | 类型 |
| --- | --- | --- |
| type | 无 | string |
| appId | 无 | string |
| 无 |signatureInfo | SignatureInfo |
| uid | 无 | number | 无|
| abilityInfos | 无 | Array\<AbilityInfo> |
| reqPermissions | 无 | Array<string> |
| compatibleVersion | 无 | number |
| isCompressNativeLibs | 无 | boolean |
| entryModuleName | 无 | string |
| cpuAbi | 无 | string |
| isSilentInstallation | 无 | string |
| entryInstallationFree | 无 | boolean |
| reqPermissionStates | permissionGrantStates | Array\<bundleManager.PermissionGrantState> |
| extensionAbilityInfo | 无 |Array\<ExtensionAbilityInfo>|
| hapModuleInfos | hapModulesInfo | Array\<HapModuleInfo> |
API9中新增SignatureInfo结构体,该结构体如下:
| 属性名 | 类型 |
| ----------- | ------ |
| appId | string |
| fingerprint | string |
**适配指导**<br>
导入包管理查询的模块,使用API9 version的BundleInfo结构体,使用二级模块导出时也需要引入下面模块。
```
import bundle form '@ohos.bundle.bundleManager'
```
## cl.bundlemanager.5 ApplicationInfo结构体变更,包管理原有bundle/applicationInfo.d.ts字段全部废弃,变更为bundleManager/applicationInfo.d.ts,涉及字段属性变化。
ApplicationInfo结构体变更,包管理原有bundle/applicationInfo.d.ts字段全部废弃,变更为bundleManager/applicationInfo.d.ts,涉及字段属性变化。
**变更影响**<br>
对原有使用API version 9之前的应用无影响,使用API version 9的应用需要适配新模块和新接口。使用二级模块导出ApplicationInfo时,需要导入@ohos.bundle.bundleManager模块。
**关键的接口/组件变更**<br>
ApplicationInfo结构体发生变化的字段内容如下表所示。其余字段在bundle/applicationInfo.d.ts中废弃后,在新的[bundleManager/applicationInfo.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/applicationInfo.d.ts)中均有对应值。没有对应字段,则表明该字段已经在API9上废弃。
| 废弃 | API9新增或变更 | 类型 |
| --- | --- | --- |
| systemApp | 无 | boolean |
| labelId | 无 | string |
| labelIndex | labelId | number |
| iconId | 无 | string |
| iconIndex | iconId | number |
| supportedModes | 无 | number |
| moduleSourceDirs | 无 | Array\<string> |
| moduleInfos | 无 | Array\<ModuleInfo> |
| metaData | 无 | Map\<string,Array\<CustomizeData>> |
| entityType | 无 | string |
| fingerprint | 无 | string |
**适配指导**<br>
导入包管理查询的模块,使用API9 version的ApplicationInfo结构体。
## cl.bundlemanager.6 HapModuleInfo结构体字段变更,包管理原有bundle/hapModuleInfo.d.ts 和 moduleInfo.d.ts字段全部废弃,变更为bundleManager/hapModuleInfo.d.ts,涉及字段属性变化。
HapModuleInfo结构体字段变更,包管理原有bundle/hapModuleInfo.d.ts 和 moduleInfo.d.ts字段全部废弃,变更为[bundleManager/hapModuleInfo.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/hapModuleInfo.d.ts),涉及字段属性变化。
**变更影响**<br>
对原有使用API version 9之前的应用无影响,使用API version 9的应用需要适配新模块和新接口。使用二级模块导出HapModuleInfo时,需要导入@ohos.bundle.bundleManager模块。
**关键的接口/组件变更**<br>
HapModuleInfo结构体发生变化的字段内容如下表所示。其余字段在bundle/hapModuleInfo.d.ts中废弃后,在新的bundleManager/hapModuleInfo.d.ts中均有对应值。
| 废弃 | API9新增或变更 | 类型 |
| --- | --- | --- |
| abilityInfo | abilitiesInfo | Array<AbilityInfo> |
| 无 | moduleSourceDir | string |
| backgroundImg | 无 | string |
| supportedModes | 无 | string |
| reqCapabilities | 无 | Array\<string> |
| moduleName | 无 | string |
| mainAbilityName | 无 | string |
| extensionAbilityInfo | extensionAbilitiesInfo | Array\<ExtensionAbilityInfo> |
**适配指导**<br>
导入包管理查询的模块,使用API9 version的HapModuleInfo结构体。
## cl.bundlemanager.7 ModuleInfo结构体废弃,使用bundleManager/hapModuleInfo.d.ts中的HapModuleInfo代替。
HapModuleInfo结构体字段变更,包管理原有bundle/hapModuleInfo.d.ts 和 moduleInfo.d.ts字段全部废弃,变更为[bundleManager/hapModuleInfo.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/hapModuleInfo.d.ts),涉及字段属性变化。
ModuleInfo结构体废弃,使用[bundleManager/hapModuleInfo.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/hapModuleInfo.d.ts)中的HapModuleInfo代替。
**变更影响**<br>
对原有使用API version 9之前的应用无影响,使用API version 9的应用需要适配新模块和新接口。ModuleInfo被废弃,使用HapModuleInfo代替。
**关键的接口/组件变更**<br>
ModuleInfo结构体被废弃,使用HapModuleInfo代替。
**适配指导**<br>
使用API9 version的HapModuleInfo结构体。
## cl.bundlemanager.8 AbilityInfo结构体字段变更,原bundle/abilityInfo.d.ts全部废弃,变更为bundleManager/abilityInfo.d.ts,涉及到字段属性变化
AbilityInfo结构体字段变更,原bundle/abilityInfo.d.ts全部废弃,变更为bundleManager/abilityInfo.d.ts,涉及到字段属性变化
**变更影响**<br>
对原有使用API version 9之前的应用无影响,使用API version 9的应用需要适配新模块和新接口。
**关键的接口/组件变更**<br>
包管理AbilityInfo结构体字段变更如下表所示,未在表格中列出的表明废弃后均在新的AbilityInfo中存在,标记为无的表明该字段已在API9废弃,在新的AbilityInfo中不存在。
|废弃 | API9新增或变更 | 类型|
|----| --| --|
| launchMode | launchType | number |
| supportWindowMode | supportWindowModes | Array\<number> |
| targetAbility | 无 | string |
| backgroundModes | 无 | number |
| formEnabled | 无 | boolean |
| subType | 无 | AbilitySubType |
|deviceCapabilities |无| Array\<string>|
| metaData | 无 | Array\<CustomizeData>|
| maxWindowRatio | 无 | number |
| minWindowRatio | 无 | number |
| maxWindowWidth | 无 | number |
| minWindowWidth | 无 | number |
| maxWindowHeight | 无 | number |
| minWindowHeight | 无 | number |
| 无| windowSize | WindowSize |
其中API9新增结构体WindowSize属性如下:
| 属性名 | 类型 |
| :-------------: | :----: |
| maxWindowRatio | number |
| minWindowRatio | number |
| maxWindowWidth | number |
| minWindowWidth | number |
| maxWindowHeight | number |
| minWindowHeight | number |
**适配指导**<br>
使用API9 version的AbilityInfo结构体。
## cl.bundlemanager.9 BundleFlag变更,变更为@ohos.bundle.bundleManager中的BundleFlag、ApplicationFlag和AbilityFlag,涉及到接口入参修改。
BundleFlag变更,变更为@ohos.bundle.bundleManager中的BundleFlag、ApplicationFlag和AbilityFlag,根据新接口的入参,传入不同类型的flag。
**变更影响**<br>
BundleFlag变更,变更为@ohos.bundle.bundleManager中的BundleFlag、ApplicationFlag和AbilityFlag,根据新接口的入参描述,传入不同类型的flag。直接使用API Version 9之前的BundleFlag,可能查询失败。
**关键的接口/组件变更**<br>
原@ohos.bundle中的BundleFlag全部废弃,使用新的@ohos.bundle.bundleManager中的BundleFlag、ApplicationFlag和AbilityFlag代替。
API9的BundleFlag 如下表所示:
| BundleFlag |值 |描述|
|---|---| --|
|GET_BUNDLE_INFO_DEFAULT|0x00000000|获取默认BundleInfo,获取到的BundleInfo不包含signatureInfo, hapModuleInfo, appInfo, reqPermissionDetails和permissionGrantStates|
|GET_BUNDLE_INFO_WITH_APPLICATION| 0x00000001|额外获取appInfos|
|GET_BUNDLE_INFO_WITH_HAP_MODULE|0x00000002|额外获取hapModulesInfo|
|GET_BUNDLE_INFO_WITH_ABILITY|0x00000004|指定在获取hapModulesInfo的信息中是否包含abilitiesInfo,需要和GET_BUNDLE_INFO_WITH_HAP_MODULE一起使用,不能单独使用。|
|GET_BUNDLE_INFO_WITH_EXTENSION_ABILITY|0x00000008|指定在获取hapModulesInfo的信息中是否包含extensionAbilitiesInfo,需要和GET_BUNDLE_INFO_WITH_HAP_MODULE一起使用,不能单独使用。|
|GET_BUNDLE_INFO_WITH_REQUESTED_PERMISSION|0x00000010|额外获取reqPermissionDetails和permissionGrantStates|
|GET_BUNDLE_INFO_WITH_METADATA|0x00000020|控制返回的ApplicationInfo, AbilityInfo和ExtensionAbilityInfo中是否包含metadata信息,不能单独使用|
|GET_BUNDLE_INFO_WITH_DISABLE|0x00000040|可获取被禁用application的BundleInfo和获取abilitiesInfo中disabled ability信息|
|GET_BUNDLE_INFO_WITH_SIGNATURE_INFO|0x00000080|额外获取signatureInfo|
API9的 ApplicationFlag 如下表所示
| ApplicationFlag |值 |描述|
|---|---| --|
|GET_APPLICATION_INFO_DEFAULT|0x00000000|获取默认ApplicationInfo,获取的ApplicationInfo不包含permissions和matedata|
|GET_APPLICATION_INFO_WITH_PERMISSION|0x00000001|额外获取permissions|
|GET_APPLICATION_INFO_WITH_METADATA|0x00000002|额外获取metadata|
|GET_APPLICATION_INFO_WITH_DISABLE|0x00000004|获取disabled的application信息|
API9的 AbilityFlag 如下表所示:
| AbilityFlag |值 |描述|
|---|---|---|
|GET_ABILITY_INFO_DEFAULT| 0x00000000|用于获取默认的AbilityInfo信息,不包含permission、metadata和 disabled 的 AbilityInfo|
|GET_ABILITY_INFO_WITH_PERMISSION | 0x00000001|用于获取带有permission信息的AbilityInfo|
|GET_ABILITY_INFO_WITH_APPLICATION | 0x00000002|用于获取带有ApplicationInfo结构体信息的AbilityInfo|
| GET_ABILITY_INFO_WITH_METADATA | 0x00000004|用于获取带有metadata信息的AbilityInfo|
|GET_ABILITY_INFO_WITH_DISABLE | 0x00000008|用于获取所有的AbilityInfo,包含被禁用的Ability|
|GET_ABILITY_INFO_ONLY_SYSTEM_APP | 0x00000010| 用于系统应用获取AbilityInfo|
**适配指导**<br>
根据调用的@ohos.bundle.bundleManager.d.ts中的接口,使用不同的flag类型。
## cl.bundlemanager.10 默认应用模块ApplicationType枚举值变更
@ohos.bundle.defaultApp模块,相关接口功能未发生变化,使用方式未发生变化。只有ApplicationType的枚举值有变化。
**变更影响**<br>
相关接口版本为API version 9,对API9之前的应用无影响。API9应用需要适配新枚举值。
**关键的接口/组件变更**<br>
ApplicationType的枚举值变化如下:
| ApplicationType | API9新增或变更 | API8及以前 |
| :-----: | :-------------: | :--------: |
| BROWSER | "Web Browser" | "BROWSER" |
| IMAGE | "Image Gallery" | "IMAGE" |
| AUDIO | "Audio Player" | "AUDIO" |
| VIDEO | "Video Player" | "VIDEO" |
| PDF | "PDF Viewer" | "PDF" |
| WORD | "Word Viewer" | "WORD" |
| EXCEL | "Excel Viewer" | "EXCEL" |
| PPT | "PPT Viewer" | "PPT" |
**适配指导**<br>
导入默认应用的模块,调用相关的接口。
```
import defaultApp form '@ohos.bundle.defaultAppManager'
```
## cl.bundlemanager.11 分布式包管理模块变更,原@ohos.distributedBundle.d.ts接口全部废弃,变更为@ohos.bundle.distributedBundle.d.ts,涉及接口变更。
API异常错误整改,分布式包管理模块变更,原@ohos.distributedBundle.d.ts接口全部废弃,变更为[@ohos.bundle.distributedBundle.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.bundle.distributedBundle.d.ts)。涉及接口getRemoteAbilityInfos,变更为getRemoteAbilityInfo。相关结构体RemoteAbilityInfo的二级模块导出功能也需要导入新模块才可以继续使用。
**变更影响**<br>
对API version 9之前的应用无影响。分布式模块和getRemoteAbilityInfos名称变更,会导致原有API version 9应用使用新的sdk编译失败。
**关键的接口/组件变更**<br>
@ohos.distributedBundle.d.ts中接口全部废弃,新增@ohos.bundle.distributedBundle.d.ts,其中部分接口保持与原接口功能一致。新接口全部支持异常处理。接口变更如下:
| 废弃 | API9新增或变更 | systemapi |
|----| ----| -- |
| getRemoteAbilityInfos | getRemoteAbilityInfo | 是|
**适配指导**<br>
需要导入新的分布式模块:
```
import distributedBundle form '@ohos.bundle.distributedBundle'
```
## cl.bundlemanager.12 免安装模块和接口变更,从@ohos.bundle.d.ts移到@ohos.bundle.freeInstall.d.ts,涉及模块和接口变更
API支持异常处理整改,免安装模块变更,从@ohos.bundle.d.ts移到@ohos.bundle.freeInstall.d.ts,涉及模块和接口变更,系统能力为SystemCapability.BundleManager.BundleFramework.FreeInstall。
1. 原导入的@ohos.bundle模块需要变更为@ohos.bundle.freeInstall。
2. setModuleUpgradeFlag变更为setHapModuleUpgradeFlag。
3. isModuleRemovable变更为isHapModuleRemovable。
4. getDispatcher变更为getDispatchInfo
**变更影响**<br>
对API version 9之前的应用无影响,使用API9接口的应用会编译失败。
**关键的接口/组件变更**<br>
免安装相关接口变更如下表所示。未在表中列出的表示接口名称和使用方法未发生变更,仅修改了模块名称。
|废弃 | API9新增或变更 | systemapi |
|----|----|----|
|setModuleUpgradeFlag|setHapModuleUpgradeFlag| 是 |
|isModuleRemovable|isHapModuleRemovable| 是 |
|getDispatcher|getDispatchInfo| 是 |
**适配指导**<br>
使用免安装相关接口,需要导入新的模块,按照接口前后对应关系进行修改。
```
import freeInstall from '@ohos.bundle.freeInstall'
```
## cl.bundlemanager.13 免安装相关结构体DisPatchInfo、AbilityFormInfo、ModuleDistroInfo和ModuleConfigInfo发生字段变更
免安装相关结构体DisPatchInfo、AbilityFormInfo、ModuleDistroInfo和ModuleConfigInfo发生字段变更:
1. DispatchInfo中字段dispatchAPI名称修改为[dispatchAPIVersion](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/dispatchInfo.d.ts),属性不变,为string。表示免安装接口的版本信息,含义不变。
2. AbilityFormInfo结构体字段属性变更,原有字段supportDimensions属性由Array\<number>修改为Array\<string>;
3. AbilityFormInfo结构体字段属性变更,原有字段defaultDimension属性由number修改为string。
4. ModuleDistroInfo结构体废弃mainAbility字段,移至ModuleConfigInfo结构体中。
5. ModuleConfigInfo结构体新增mainAbility字段。
**变更影响**<br>
对API version 9之前的应用无影响。结构体名称字段属性变更,会导致原有API9应用使用新的sdk编译失败。
**关键的接口/组件变更**<br>
1. DispatchInfo
| 废弃 | API9新增或变更 | 属性|
|---|----|---|
| dispatchAPI | dispatchAPIVersion | string |
2. AbilityFormInfo
| 字段 | API9属性 | 原属性 |
|---|----|---|
| supportDimensions | Array\<string> | Array\<number> |
| defaultDimension | string| number |
3. ModuleDistroInfo
| 字段 | API9新增或变更 | 属性 |
|---|----|---|
| mainAbility | 无| string |
4. MooduleConfigInfo
| 字段 | API9新增或变更 | 属性 |
|---|----|---|
| 无 | mainAbility| string |
**适配指导**<br>
使用免安装相关接口,需要导入新的模块,按照结构体前后对应关系进行修改。
```
import freeInstall from '@ohos.bundle.freeInstall'
```
## cl.bundlemanager.14 结构体GrantStatus变更为PermissionGrantState
结构体GrantStatus变更为PermissionGrantState,枚举类型和值不变。
**变更影响**<br>
对API version 9之前的应用无影响。结构体名称字变更,会导致原有API9应用使用新的sdk编译失败。
**关键的接口/组件变更**<br>
表示授权状态的GrantStatus结构体变更为@ohos.bundle.bundleManager.d.ts中的PermissionGrantState。
| 枚举名 | 枚举值 |
| ---| ---|
| PERMISSION_DENIED | -1 |
| PERMISSION_GRANTED | 0 |
**适配指导**<br>
需要导入新的模块,修改结构体名称为PermissionGrantState。
```
import bundle form '@ohos.bundle.bundleManager'
```
## cl.bundlemanager.15 包管理ShortcutInfo结构体字段变更
包管理ShortcutInfo结构体字段变更,原有bundle/shortcutInfo.d.ts字段全部废弃,变更为[bundleManager/shortcutInfo.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/shortcutInfo.d.ts)。ShortcutInfo和ShortWant结构体全部为systemapi。
**变更影响**<br>
对API version 9之前的应用无影响。结构体名称字段属性变更,会导致原有API9应用使用新的sdk编译失败。
**关键的接口/组件变更**<br>
涉及到ShortcutInfo和ShortcutWant结构体。如果需要使用二级模块导出功能,需要导入新模块@ohos.bundle.launcherBundleManager。
ShortcutInfo结构体变化如下表,未在表格中列出的表明字段在API9上还存在。
| 废弃 | API9新增或变更 | 属性 |
| ---| ---| ---|
| disableMessage | 无 | string |
| isStatic | 无 | boolean |
| isHomeShortcut | 无 | boolean |
| isEnabled | 无 | boolean |
| disableMessage | 无 | boolean |
ShortcutWant结构体如下表,未在表格中列出的表明字段在API9上还存在。
| 废弃 | API9新增或变更 | 属性 |
| ---| ---| ---|
| targetClass | targetAbility | string |
**适配指导**<br>
使用免安装相关接口,需要导入新的模块,按照结构体前后对应关系进行修改。
```
import launcherBundleManager form '@ohos.bundle.launcherBundleManager'
```
## cl.bundlemanager.16 包管理getBundleInstaller接口变更,从@ohos.bundle.d.ts移至@ohos.bundle.installer.d.ts
包管理getBundleInstaller接口变更,从@ohos.bundle.d.ts移至[@ohos.bundle.installer.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.bundle.installer.d.ts)
.,系统能力为SystemCapability.BundleManager.BundleFramework.Core。
**变更影响**<br>
对API version 9之前的应用无影响。使用API9的应用需要适配新模块和新接口。
**关键的接口/组件变更**<br>
1. getBundleInstaller,导入模块由@ohos.bundle变更为@ohos.bundle.installer。
**适配指导**<br>
导入新的包管理安装模块,调用getBundleInstaller
```
import installer form '@ohos.bundle.installer'
```
## cl.bundlemanager.17 包管理安装接口变更,从bundle/bundleInstaller.d.ts移至@ohos.bundle.installer.d.ts
包管理安装接口变更,从bundle/bundleInstaller.d.ts移至[@ohos.bundle.installer.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.bundle.installer.d.ts),系统能力为SystemCapability.BundleManager.BundleFramework.Core。
**变更影响**<br>
对API version 9之前的应用无影响。使用API9的应用需要适配新模块和新接口。
**关键的接口/组件变更**<br>
1. install/uninstall/recover接口增加了异常处理能力,接口名称和入参均未发生变化,仅修改了模块名称。
2. HashParam结构体新增字段
| API9新增 | 属性 |
|---|---|
| moduleName | string |
| hashValue | string |
3. InstallParam结构体变更如下:
| API9新增 | 属性 |
|---|--|
| userId | number |
| installFlag | number |
| isKeepData | boolean |
| hashParams | Array\<HashParam> |
| crowdtestDeadline | number |
4. InstallStatus,结构体已废弃。
**适配指导**<br>
导入新的包管理安装模块,调用getBundleInstaller
```
import installer form '@ohos.bundle.installer'
```
## cl.bundlemanager.18 包管理安装功能变更
包管理安装规格变更,增加了对应用deviceType配置和设备类型的匹配校验,如果两者匹配失败,则安装失败。
**变更影响**<br>
影响在此前版本已开发的应用,应用需要适配才能在新版本镜像安装成功。
**关键的接口/组件变更**<br>
不涉及
**适配指导**<br>
提供指导,在应用配置文件config.json或者module.json的deviceType配置对应的设备类型。
```
{
"module": {
"name": "entry",
"type": "entry",
// ...
"deviceTypes":[
// 该示例配置了default和tablet,则支持在default和tablet上进行安装。
"default",
"tablet"
],
// ...
}
```
## cl.bundlemanager.19 包管理innerBundleManger模块接口变更,@ohos.bundle.innerBundleManger.d.ts接口全部废弃,移至@ohos.bundle.launcherBundleManager.d.ts。
innerBundleManager相关接口功能未发生变化,使用方式有变化。需要导入[@ohos.bundle.launcherBundleManager.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.bundle.launcherBundleManager.d.ts)模块来使用innerBundleManager相关的接口,系统能力为SystemCapability.BundleManager.BundleFramework.Core。
**变更影响**<br>
相关接口版本为API version 9,对api9之前的应用无影响。使用了innerBundleManager接口能力的应用需要适配新的模块和接口。
**关键的接口/组件变更**<br>
以下接口功能和入参未发生变化,增加了API异常处理。使用二级模块导出ShortcutInfo和ShortcutWant时,需要导入新模块@ohos.bundle.launcherBundleManager。on/off接口从@ohos.bundle.innerBundleManger.d.ts中废弃,移至@ohos.bundle.bundleMonitor.d.ts中。
1. getLauncherAbilityInfos<br>
2. getAllLauncherAbilityInfos<br>
3. getShortcutInfos
**适配指导**<br>
需要导入新模块@ohos.bundle.launcherBundleManage
```
import launcherBundleManager form '@ohos.bundle.launcherBundleManage'
```
## cl.bundlemanager.20 innerBundleManagr模块变更,on, off接口从@ohos.bundle.innerBundleManager模块移到@ohos.bundle.bundleMonitor.d.ts模块
innerBundleManager相关接口功能未发生变化,使用方式有变化。需要导入[@ohos.bundle.bundleMonitor.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.bundle.bundleMonitor.d.ts)模块来使用innerBundleManager相关的接口,均为systemapi。系统能力为SystemCapability.BundleManager.BundleFramework.Core。
**变更影响**<br>
相关接口版本为API version 9,对API9之前的应用无影响。使用了innerBundleManager接口能力的应用需要适配新的模块和接口。
**关键的接口/组件变更**<br>
on/off变更至@ohos.bundle.bundleMonitor.d.ts,使用接口入参与老接口不同。API9函数原型为:
```
function on(type: BundleChangedEvent, callback: Callback<BundleChangedInfo>): void;
function off(type: BundleChangedEvent, callback?: Callback<BundleChangedInfo>): void;
```
其中BundleChangedEvent为:
```
type BundleChangedEvent = 'add' | 'update' | 'remove';
```
回调函数BundleChangedInfo为:
```
interface BundleChangedInfo {
readonly bundleName: string;
readonly userId: number;
}
```
由调用方获取到BundleChangedInfo后,继续执行相关操作(即老接口中BundleStatusCallback中的add、update和remove等函数)。
**适配指导**<br>
导入bundleMonitor的模块,调用相关接口。
```
import bundleMonitor form '@ohos.bundle.bundleMonitor'
```
## cl.bundlemanager.21 包管理bundleStatusCallback.d.ts接口全部废弃,移至@ohos.bundle.bundleMonitor.d.ts中。
包管理bundleStatusCallback.d.ts接口全部废弃,移至[@ohos.bundle.bundleMonitor.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.bundle.bundleMonitor.d.ts)中。原有BundleStatusCallback中的add、update和remove全部废弃,变更为BundleChangedEvent,为systemapi。系统能力为SystemCapability.BundleManager.BundleFramework.Core。
**变更影响**<br>
相关接口版本为API version 9,对API9之前的应用无影响。使用了BundleStatusCallback接口能力的应用需要适配新的模块和接口。
**关键的接口/组件变更**<br>.
以下接口全部废弃,在@ohos.bundle.bundleMonitor.d.ts中新增BundleChangedEvent。
1. add
2. update
3. remove
**适配指导**<br>
导入bundleMonitor的模块,调用相关接口。与之前的BundleStatusCallback方式不同,BundleStatusCallback是将add、update和remove方法传入on/off接口,API9的BundleMonitor接口是通过on/off接口将BundleChangedInfo通过回调函数返回出来给调用方使用。
```
import bundleMonitor form '@ohos.bundle.bundleMonitor'
```
## cl.bundlemanager.22 包管理Zlib模块接口变更,@ohos.zlib.d.ts中接口涉及废弃和变更。
包管理Zlib模块接口变更,[@ohos.zlib.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.zlib.d.ts)中接口涉及废弃和变更。系统能力为SystemCapability.BundleManager.Zlib。
**变更影响**<br>
相关接口版本为API version 9,对API9之前的应用无影响。使用了API9的应用需要适配新的模块和接口。
**关键的接口/组件变更**<br>
@ohos.zlib.d.ts中涉及到变更的接口如下表所示,新增API9接口使用方法与之前相同,支持API异常处理。
| 废弃 | API9新增或变更 | systemapi|
|---|----|---|
| zipFile | compressFile | 是 |
| unzipFile | decompressFile | 是 |
| ErrorCode | 无 | 是 |
**适配指导**<br>
导入模块未发生变化,直接使用新接口,适配异常处理。
```
import zlib form '@ohos.zlib'
```
# 分布式调度子系统ChangeLog
## cl.DistributedManagerService.1 continuationManager事件监听接口on/off变更
- continuationManager事件监听接口on/off传入的参数事件类型名,命名不符合OpenHarmony的API接口规范。
- continuationManager.on对于不同的事件接口返回值未进行统一,不符合OpenHarmony的API接口规范。
已做出以下变更:
- continuationManager.on和continuationManager.off的设备选择事件名由原来的"deviceConnect"变更为"deviceSelected",设备取消选择事件名由原来的"deviceDisconnect"变更为"deviceUnselected"。
- continuationManager.on对于不同事件统一callback返回值类型"Callback&lt;Array&lt;ContinuationResult&gt;&gt;"。
**变更影响**
基于此前版本开发的应用,需适配变更接口,否则会影响原有业务逻辑。
**关键的接口/组件变更**
- 涉及接口
continuationManager.on;
continuationManager.off;
- 变更前:
```js
function on(type: "deviceConnect", token: number, callback: Callback<Array<ContinuationResult>>): void;
function off(type: "deviceConnect", token: number): void;
function on(type: "deviceDisconnect", token: number, callback: Callback<Array<string>>): void;
function off(type: "deviceDisconnect", token: number): void;
```
- 变更后:
```js
function on(type: "deviceSelected", token: number, callback: Callback<Array<ContinuationResult>>): void;
function off(type: "deviceSelected", token: number): void;
function on(type: "deviceUnselected", token: number, callback: Callback<Array<ContinuationResult>>): void;
function off(type: "deviceUnselected", token: number): void;
```
**适配指导**
修改事件名称,示例代码如下:
continuationManager.on 设备选择事件
```ts
let token = 1;
try {
continuationManager.on("deviceSelected", token, (data) => {
console.info('onDeviceSelected len: ' + data.length);
for (let i = 0; i < data.length; i++) {
console.info('onDeviceSelected deviceId: ' + JSON.stringify(data[i].id));
console.info('onDeviceSelected deviceType: ' + JSON.stringify(data[i].type));
console.info('onDeviceSelected deviceName: ' + JSON.stringify(data[i].name));
}
});
} catch (err) {
console.error('on failed, cause: ' + JSON.stringify(err));
}
```
continuationManager.off 设备选择事件
```ts
let token = 1;
try {
continuationManager.off("deviceSelected", token);
} catch (err) {
console.error('off failed, cause: ' + JSON.stringify(err));
}
```
continuationManager.on 设备取消选择事件
```ts
let token = 1;
try {
continuationManager.on("deviceUnselected", token, (data) => {
console.info('onDeviceUnselected len: ' + data.length);
for (let i = 0; i < data.length; i++) {
console.info('onDeviceUnselected deviceId: ' + JSON.stringify(data[i].id));
console.info('onDeviceUnselected deviceType: ' + JSON.stringify(data[i].type));
console.info('onDeviceUnselected deviceName: ' + JSON.stringify(data[i].name));
}
console.info('onDeviceUnselected finished.');
});
} catch (err) {
console.error('on failed, cause: ' + JSON.stringify(err));
}
```
continuationManager.off 设备取消选择事件
```ts
let token = 1;
try {
continuationManager.off("deviceUnselected", token);
} catch (err) {
console.error('off failed, cause: ' + JSON.stringify(err));
}
```
\ No newline at end of file
...@@ -228,7 +228,7 @@ ...@@ -228,7 +228,7 @@
**关键接口/组件变更** **关键接口/组件变更**
为适配统一的API异常处理方式,对元能力相关接口进行废弃(下表中 原接口 列内容),并新增对应接口(下表中 新接口 列内容)。新增接口支持统一的错误码异常处理规范,功能上与原接口保持一致。 为适配统一的API异常处理方式,对元能力相关接口进行废弃(下表中 原接口 列内容,其中的API9接口将被删除,API8及以前的接口将被标注为废弃),并新增对应接口(下表中 新接口 列内容)。新增接口支持统一的错误码异常处理规范,功能上与原接口保持一致。
| 原接口 | 新接口 | | 原接口 | 新接口 |
| ----------------------------------------------- | ----------------------------------------------- | | ----------------------------------------------- | ----------------------------------------------- |
......
# 定制子系统ChangeLog
OpenHarmony 3.2.8.3 版本相较于OpenHarmony 3.2.8.1版本,定制子系统的API变更如下:
## cl.Customization.1 企业设备管理模块名称变更
从Opeharmonny 3.2.8.3版本开始,将"@ohos.enterpriseDeviceManager.d.ts"改为"@ohos.enterprise.adminManager.d.ts",开发者需要根据以下说明对应用进行适配。
**变更影响**
在Opeharmonny 3.2.8.3之前版本已开发的应用,需要进行适配动才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
| 原接口 | 新接口 |
| --------------------------------- | ---------------------------------- |
| @ohos.enterpriseDeviceManager.d.ts | @ohos.enterprise.adminManager.d.ts |
**适配指导**
如上所述,仅将老接口平移到了新的namespace中,所以可以通过修改import来解决适配问题:
如原先接口使用了@ohos.enterpriseDeviceManager:
```js
import enterpriseDeviceManager from '@ohos.enterpriseDeviceManager';
```
可以通过直接修改import,来切换到新的namespace上:
```js
import enterpriseDeviceManager from '@ohos.enterprise.adminManager';
```
## cl.Customization.2 enterpriseDeviceManager/DeviceSettingsManager.d.ts模块变更
从Opeharmonny 3.2.8.3版本开始,将enterpriseDeviceManager/DeviceSettingsManager.d.ts更改为"ohos.enterprise.dateTimeManager.d.ts"。
**变更影响**
在Opeharmonny 3.2.8.3之前版本已开发的应用,需要进行适配动才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
| 原接口 | 原接口类型 | 新接口 | 新接口类型 |
| --------------------------------- | --------- | ---------------------------------- | ----- |
| enterpriseDeviceManager/DeviceSettingsManager.d.ts | interface | @ohos.enterprise.dateTimeManager.d.ts | namespace |
**适配指导**
若原先使用的enterpriseDeviceManager/DeviceSettingsManager.d.ts的setDateTime接口。
```js
import enterpriseDeviceManager from '@ohos.enterpriseDeviceManager'
let wantTemp = {
bundleName: "bundleName",
abilityName: "abilityName",
};
enterpriseDeviceManager.getDeviceSettingsManager((error, mgr) => {
if (error) {
console.log("error code:" + error.code + " error message:" + error.message);
return;
}
mgr.setDateTime(wantTemp, 1526003846000, (error) => {
if (error) {
console.log("error code:" + error.code + " error message:" + error.message);
}
});
});
```
需要import新的namespace进行适配。
```js
import dateTimeManager from '@ohos.enterprise.dateTimeManager'
let wantTemp = {
bundleName: "bundleName",
abilityName: "abilityName",
};
dateTimeManager.setDateTime(wantTemp, 1526003846000, (error) => {
if (error) {
console.log("error code:" + error.code + " error message:" + error.message);
}
})
```
## cl.Customization.3 systemapi变更
从Opeharmonny 3.2.8.3版本开始,企业设备管理所有接口变更为systemapi。
**变更影响**
所有接口只允许系统应用调用,非系统应用无法调用接口。
**关键的接口/组件变更**
| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 |
| ------------------------- | ------------------- | ------------------------------------------------------------ | -------- |
| @ohos.enterprise.adminManager | adminManager | **function** enableAdmin(admin: Want, enterpriseInfo: EnterpriseInfo, type: AdminType, callback: AsyncCallback<**void**>): void; | systemapi |
| @ohos.enterprise.adminManager | adminManager | **function** enableAdmin(admin: Want, enterpriseInfo: EnterpriseInfo, type: AdminType, userId: number, callback: AsyncCallback<**void**>): void; | systemapi |
| @ohos.enterprise.adminManager | adminManager | **function** enableAdmin(admin: Want, enterpriseInfo: EnterpriseInfo, type: AdminType, userId?: number): Promise<**void**>; | systemapi |
| @ohos.enterprise.adminManager | adminManager | **function** disableAdmin(admin: Want, callback: AsyncCallback<**void**>): void; | systemapi |
| @ohos.enterprise.adminManager | adminManager | **function** disableAdmin(admin: Want, userId: number, callback: AsyncCallback<**void**>): void; | systemapi |
| @ohos.enterprise.adminManager | adminManager | **function** disableAdmin(admin: Want, userId?: number): Promise<**void**>; | systemapi |
| @ohos.enterprise.adminManager | adminManager | **function** disableSuperAdmin(bundleName: String, callback: AsyncCallback<**void**>): void; | systemapi |
| @ohos.enterprise.adminManager | adminManager | **function** disableSuperAdmin(bundleName: String): Promise<**void**>; | systemapi |
| @ohos.enterprise.adminManager | adminManager | **function** isAdminEnabled(admin: Want, callback: AsyncCallback<**boolean**>): void; | systemapi |
| @ohos.enterprise.adminManager | adminManager | **function** isAdminEnabled(admin: Want, userId: number, callback: AsyncCallback<**boolean**>): void; | systemapi |
| @ohos.enterprise.adminManager | adminManager | **function** isAdminEnabled(admin: Want, userId?: number): Promise<**boolean**>; | systemapi |
| @ohos.enterprise.adminManager | adminManager | **function** getEnterpriseInfo(admin: Want, callback: AsyncCallback<**EnterpriseInfo**>): void; | systemapi |
| @ohos.enterprise.adminManager | adminManager | **function** getEnterpriseInfo(admin: Want): Promise<**EnterpriseInfo**>; | systemapi |
| @ohos.enterprise.adminManager | adminManager | **function** setEnterpriseInfo(admin: Want, enterpriseInfo: EnterpriseInfo, callback: AsyncCallback<**void**>): void; | systemapi |
| @ohos.enterprise.adminManager | adminManager | **function** setEnterpriseInfo(admin: Want, enterpriseInfo: EnterpriseInfo): Promise<**void**>; | systemapi |
| @ohos.enterprise.adminManager | adminManager | **function** isSuperAdmin(bundleName: String, callback: AsyncCallback<**boolean**>): void; | systemapi |
| @ohos.enterprise.adminManager | adminManager | **function** isSuperAdmin(bundleName: String): Promise<**boolean**>; | systemapi |
| @ohos.enterprise.adminManager | adminManager | **function** subscribeManagedEvent(admin: Want, managedEvents: Array<**ManagedEvent**>, callback: AsyncCallback<**void**>): void; | systemapi |
| @ohos.enterprise.adminManager | adminManager | **function** subscribeManagedEvent(admin: Want, managedEvents: Array<**ManagedEvent**>): Promise<**void**>; | systemapi |
| @ohos.enterprise.adminManager | adminManager | **function** unsubscribeManagedEvent(admin: Want, managedEvents: Array<**ManagedEvent**>, callback: AsyncCallback<**void**>): void; | systemapi |
| @ohos.enterprise.adminManager | adminManager | **function** unsubscribeManagedEvent(admin: Want, managedEvents: Array<**ManagedEvent**>): Promise<**void**>; | systemapi |
| @ohos.enterprise.adminManager | adminManager | **interface** EnterpriseInfo | systemapi |
| @ohos.enterprise.adminManager | adminManager | **enum** AdminType | systemapi |
| @ohos.enterprise.adminManager | adminManager | **enum** ManagedEvent | systemapi |
| @ohos.enterprise.dataTimeManager | dateTimeManager | **function** setDateTime(admin: Want, time: number, callback: AsyncCallback<**void**>): void; | systemapi |
| @ohos.enterprise.dataTimeManager | dateTimeManager | **function** setDateTime(admin: Want, time: number): Promise<**void**>; | systemapi |
## cl.Customization.4 接口权限变更
从Opeharmonny 3.2.8.3版本开始,部分接口新增权限校验。
**变更影响**
在Opeharmonny 3.2.8.3之前版本已开发的应用,需要持有相应权限,否则无法正常调用接口。
**关键的接口/组件变更**
| 模块名 | 类名 | 方法/属性/枚举/常量 | 新增权限 |
| ------------------------- | ------------------- | ------------------------------------------------------------ | -------- |
| @ohos.enterprise.adminManager | adminManager | **function** enableAdmin(admin: Want, enterpriseInfo: EnterpriseInfo, type: AdminType, callback: AsyncCallback<**void**>): void; | ohos.permission.MANAGE_ENTERPRISE_DEVICE_ADMIN |
| @ohos.enterprise.adminManager | adminManager | **function** enableAdmin(admin: Want, enterpriseInfo: EnterpriseInfo, type: AdminType, userId: number, callback: AsyncCallback<**void**>): void; | ohos.permission.MANAGE_ENTERPRISE_DEVICE_ADMIN |
| @ohos.enterprise.adminManager | adminManager | **function** enableAdmin(admin: Want, enterpriseInfo: EnterpriseInfo, type: AdminType, userId?: number): Promise<**void**>; | ohos.permission.MANAGE_ENTERPRISE_DEVICE_ADMIN |
| @ohos.enterprise.adminManager | adminManager | **function** disableAdmin(admin: Want, callback: AsyncCallback<**void**>): void; | ohos.permission.MANAGE_ENTERPRISE_DEVICE_ADMIN |
| @ohos.enterprise.adminManager | adminManager | **function** disableAdmin(admin: Want, userId: number, callback: AsyncCallback<**void**>): void; | ohos.permission.MANAGE_ENTERPRISE_DEVICE_ADMIN |
| @ohos.enterprise.adminManager | adminManager | **function** disableAdmin(admin: Want, userId?: number): Promise<**void**>; | ohos.permission.MANAGE_ENTERPRISE_DEVICE_ADMIN |
| @ohos.enterprise.adminManager | adminManager | **function** disableSuperAdmin(bundleName: String, callback: AsyncCallback<**void**>): void; | ohos.permission.MANAGE_ENTERPRISE_DEVICE_ADMIN |
| @ohos.enterprise.adminManager | adminManager | **function** disableSuperAdmin(bundleName: String): Promise<**void**>; | ohos.permission.MANAGE_ENTERPRISE_DEVICE_ADMIN |
| @ohos.enterprise.adminManager | adminManager | **function** setEnterpriseInfo(admin: Want, enterpriseInfo: EnterpriseInfo, callback: AsyncCallback<**void**>): void; | ohos.permission.SET_ENTERPRISE_INFO |
| @ohos.enterprise.adminManager | adminManager | **function** setEnterpriseInfo(admin: Want, enterpriseInfo: EnterpriseInfo): Promise<**void**>; | ohos.permission.SET_ENTERPRISE_INFO |
| @ohos.enterprise.adminManager | adminManager | **function** subscribeManagedEvent(admin: Want, managedEvents: Array<**ManagedEvent**>, callback: AsyncCallback<**void**>): void; | ohos.permission.ENTERPRISE_SUBSCRIBE_MANAGED_EVENT |
| @ohos.enterprise.adminManager | adminManager | **function** subscribeManagedEvent(admin: Want, managedEvents: Array<**ManagedEvent**>): Promise<**void**>; | ohos.permission.ENTERPRISE_SUBSCRIBE_MANAGED_EVENT |
| @ohos.enterprise.adminManager | adminManager | **function** unsubscribeManagedEvent(admin: Want, managedEvents: Array<**ManagedEvent**>, callback: AsyncCallback<**void**>): void; | ohos.permission.ENTERPRISE_SUBSCRIBE_MANAGED_EVENT |
| @ohos.enterprise.adminManager | adminManager | **function** unsubscribeManagedEvent(admin: Want, managedEvents: Array<**ManagedEvent**>): Promise<**void**>; | ohos.permission.ENTERPRISE_SUBSCRIBE_MANAGED_EVENT |
| @ohos.enterprise.dataTimeManager | dateTimeManager | **function** setDateTime(admin: Want, time: number, callback: AsyncCallback<**void**>): void; | ohos.permission.ENTERPRISE_SET_DATETIME |
| @ohos.enterprise.dataTimeManager | dateTimeManager | **function** setDateTime(admin: Want, time: number): Promise<**void**>; | ohos.permission.ENTERPRISE_SET_DATETIME |
**适配指导**
调用以上接口,需要申请相应的权限才能正常调用。
# 位置服务子系统ChangeLog
## cl.location.1 系统API和API9接口迁移到新增的@ohos.geoLocationManager.d.ts
@ohos.geolocation.d.ts接口不支持抛出错误码,而API9和systemApi都需要支持抛出错误码,为了支持该功能,把@ohos.geolocation.d.ts中systemApi和API9所有接口,迁移到新增的@ohos.geoLocationManager.d.ts中,并增加错误码描述。
后续需要import @ohos.geoLocationManager才能使用位置服务的系统API和API9接口:
import geoLocationManager from '@ohos.geoLocationManager';
**变更影响**
仅对系统API和API9所有接口的使用有影响,需要import @ohos.geoLocationManager才能使用位置服务的系统API和API9接口:
import geoLocationManager from '@ohos.geoLocationManager';
对于其他接口无影响。
**关键的接口/组件变更**
| 类名 | 接口类型 | 接口声明 | 变更类型 |
| -- | -- | -- | -- |
|geolocation| namespace | declare namespacegeolocation| API9接口变更,迁移到@ohos.geoLocationManager.d.ts |
|geolocation | interface | export interface ReverseGeocodingMockInfo | API9接口变更,迁移到@ohos.geoLocationManager.d.ts |
|geolocation | interface | export interface LocationMockConfig | API9接口变更,迁移到@ohos.geoLocationManager.d.ts |
|geolocation | interface | export interface CountryCode | API9接口变更,迁移到@ohos.geoLocationManager.d.ts |
|geolocation | enum | export enum CountryCodeType | API9接口变更,迁移到@ohos.geoLocationManager.d.ts |
|geolocation.GeoAddress | field | isFromMock?: Boolean; | API9接口变更,迁移到@ohos.geoLocationManager.d.ts |
|geolocation.Location | field | isFromMock?: Boolean; | API9接口变更,迁移到@ohos.geoLocationManager.d.ts |
|geolocation.GeoLocationErrorCode | field | NOT_SUPPORTED = 100 | API9接口变更,迁移到@ohos.geoLocationManager.d.ts |
|geolocation.GeoLocationErrorCode | field | QUERY_COUNTRY_CODE_ERROR | API9接口变更,迁移到@ohos.geoLocationManager.d.ts |
|geolocation| method | function on(type: 'countryCodeChange', callback: Callback&lt;CountryCode&gt;): void; | API9接口变更,迁移到@ohos.geoLocationManager.d.ts |
|geolocation| method | function off(type: 'countryCodeChange', callback?: Callback&lt;CountryCode&gt;): void; | API9接口变更,迁移到@ohos.geoLocationManager.d.ts |
|geolocation| method | function getCountryCode(callback: AsyncCallback&lt;CountryCode&gt;): void; | API9接口变更,迁移到@ohos.geoLocationManager.d.ts |
|geolocation| method | function getCountryCode(): Promise&lt;CountryCode&gt;; | API9接口变更,迁移到@ohos.geoLocationManager.d.ts |
|geolocation| method | function enableLocationMock(scenario: LocationRequestScenario, callback: AsyncCallback&lt;void&gt;): void; | API9接口变更,该接口删除。 |
|geolocation| method | function enableLocationMock(callback: AsyncCallback&lt;void&gt;): void; | API9接口变更,迁移到@ohos.geoLocationManager.d.ts |
|geolocation| method | function enableLocationMock(scenario: LocationRequestScenario): Promise&lt;void&gt;; | API9接口变更,该接口删除。 |
|geolocation| method | function enableLocationMock(): Promise&lt;void&gt;; | API9接口变更,迁移到@ohos.geoLocationManager.d.ts |
|geolocation| method | function disableLocationMock(scenario: LocationRequestScenario, callback: AsyncCallback&lt;void&gt;): void; | API9接口变更,该接口删除。 |
|geolocation| method | function disableLocationMock(callback: AsyncCallback&lt;void&gt;): void; | API9接口变更,迁移到@ohos.geoLocationManager.d.ts |
|geolocation| method | function disableLocationMock(scenario: LocationRequestScenario): Promise&lt;void&gt;; | API9接口变更,该接口删除。 |
|geolocation| method | function disableLocationMock(): Promise&lt;void&gt;; | API9接口变更,迁移到@ohos.geoLocationManager.d.ts |
|geolocation| method | function setMockedLocations(config: LocationMockConfig, callback: AsyncCallback&lt;void&gt;): void; | API9接口变更,迁移到@ohos.geoLocationManager.d.ts |
|geolocation| method | function setMockedLocations(config: LocationMockConfig): Promise&lt;void&gt;; | API9接口变更,迁移到@ohos.geoLocationManager.d.ts |
|geolocation| method | function enableReverseGeocodingMock(callback: AsyncCallback&lt;void&gt;): void; | API9接口变更,迁移到@ohos.geoLocationManager.d.ts |
|geolocation| method | function enableReverseGeocodingMock(): Promise&lt;void&gt;; | API9接口变更,迁移到@ohos.geoLocationManager.d.ts |
|geolocation| method | function disableReverseGeocodingMock(callback: AsyncCallback&lt;void&gt;): void; | API9接口变更,迁移到@ohos.geoLocationManager.d.ts |
|geolocation| method | function disableReverseGeocodingMock(): Promise&lt;void&gt;; | API9接口变更,迁移到@ohos.geoLocationManager.d.ts |
|geolocation| method | function setReverseGeocodingMockInfo(mockInfos: Array&lt;ReverseGeocodingMockInfo&gt;, callback: AsyncCallback&lt;void&gt;): void; | API9接口变更,迁移到@ohos.geoLocationManager.d.ts |
|geolocation| method | function setReverseGeocodingMockInfo(mockInfos: Array&lt;ReverseGeocodingMockInfo&gt;): Promise&lt;void&gt;; | API9接口变更,迁移到@ohos.geoLocationManager.d.ts |
|geolocation| method | function isLocationPrivacyConfirmed(type: LocationPrivacyType, callback: AsyncCallback&lt;boolean&gt;): void; | API9接口变更,迁移到@ohos.geoLocationManager.d.ts |
|geolocation| method | function isLocationPrivacyConfirmed(type: LocationPrivacyType): Promise&lt;boolean&gt;; | API9接口变更,迁移到@ohos.geoLocationManager.d.ts |
|geolocation| method | function setLocationPrivacyConfirmStatus(type: LocationPrivacyType, isConfirmed: boolean, callback: AsyncCallback&lt;boolean&gt;): void; | API9接口变更,迁移到@ohos.geoLocationManager.d.ts,callback返回值改为void。 |
|geolocation| method | function setLocationPrivacyConfirmStatus(type: LocationPrivacyType, isConfirmed: boolean): Promise&lt;boolean&gt;; | API9接口变更,迁移到@ohos.geoLocationManager.d.ts,promise返回值改为void。 |
**适配指导(可选,不涉及则可以删除)**
以enableLocation为例,在新版本上需要使用如下方式进行调用:
```ts
import geoLocationManager from '@ohos.geoLocationManager';
try {
geoLocationManager.enableLocation((err, data) => {
if (err) {
console.log('enableLocation: err=' + JSON.stringify(err));
}
});
} catch (err) {
console.error("errCode:" + err.code + ",errMessage:" + err.message);
}
```
## cl.location.2 位置服务权限变更
从API9开始,增加ohos.permission.APPROXIMATELY_LOCATION,表示模糊位置权限。
如果应用开发者使用的API版本大于等于9,则需要同时申请ohos.permission.LOCATION和ohos.permission.APPROXIMATELY_LOCATION,单独申请ohos.permission.LOCATION会失败。
**变更影响**
如果是存量应用(使用的API版本小于9),则无影响。如果使用的API版本大于等于9,位置服务权限申请方式有变更,详情如下:
应用在使用系统能力前,需要检查是否已经获取用户授权访问设备位置信息。如未获得授权,可以向用户申请需要的位置权限,申请方式请参考下文。
系统提供的定位权限有:
- ohos.permission.LOCATION
- ohos.permission.APPROXIMATELY_LOCATION
- ohos.permission.LOCATION_IN_BACKGROUND
访问设备的位置信息,必须申请权限,并且获得用户授权。
API9之前的版本,申请ohos.permission.LOCATION即可。
API9及之后的版本,需要申请ohos.permission.APPROXIMATELY_LOCATION或者同时申请ohos.permission.APPROXIMATELY_LOCATION和ohos.permission.LOCATION;无法单独申请ohos.permission.LOCATION。
| 使用的API版本 | 申请位置权限 | 申请结果 | 位置的精确度 |
| -------- | -------- | -------- | -------- |
| 小于9 | ohos.permission.LOCATION | 成功 | 获取到精准位置,精准度在米级别。 |
| 大于等于9 | ohos.permission.LOCATION | 失败 | 无法获取位置。 |
| 大于等于9 | ohos.permission.APPROXIMATELY_LOCATION | 成功 | 获取到模糊位置,精确度为5公里。 |
| 大于等于9 | ohos.permission.APPROXIMATELY_LOCATION和ohos.permission.LOCATION | 成功 | 获取到精准位置,精准度在米级别。 |
如果应用在后台运行时也需要访问设备位置,除需要将应用声明为允许后台运行外,还必须申请ohos.permission.LOCATION_IN_BACKGROUND权限,这样应用在切入后台之后,系统可以继续上报位置信息。
开发者可以在应用配置文件中声明所需要的权限,具体可参考[授权申请指导](../../../application-dev/security/accesstoken-guidelines.md)
**关键的接口/组件变更**
如果是存量应用(使用的API版本小于9),则无影响。
如果使用的API版本大于等于9,则在使用@ohos.geolocation和@ohos.geoLocationManager中需要ohos.permission.LOCATION权限的接口时,都需要按照上文所述方式申请对应权限。
# 多媒体子系统ChangeLog
## cl.multimedia.audio.001 getRoutingManager()调用方式变更
getRoutingManager()接口的调用方法由异步变为同步。
**变更影响**
如不符合上述调用规则,将会在编译执行时出错。
**关键的接口/组件变更**
变更前
```js
getRoutingManager(callback: AsyncCallback<AudioRoutingManager>): void;
getRoutingManager(): Promise<AudioRoutingManager>;
```
变更后
```js
getRoutingManager(): AudioRoutingManager;
```
## cl.multimedia.audio.002 getStreamManager()调用方式变更
getStreamManager()接口的调用方法由异步变为同步。
**变更影响**
如不符合上述调用规则,将会在编译执行时出错。
**关键的接口/组件变更**
变更前
```js
getStreamManager(callback: AsyncCallback<AudioStreamManager>): void;
getStreamManager(): Promise<AudioStreamManager>;
```
变更后
```js
getStreamManager(): AudioStreamManager;
```
## cl.multimedia.audio.003 原AudioRoutingManager中micStateChange监听注册方式变更
原AudioRoutingManager中,on()函数的micStateChange监听注册方式变更。
**变更影响**
如不符合上述调用规则,将会在编译执行时出错。
**关键的接口/组件变更**
变更前
```js
interface AudioRoutingManager {
on(type: 'micStateChange', callback: Callback<MicStateChangeEvent>): void;
}
```
变更后
```js
interface AudioVolumeGroupManager {
on(type: 'micStateChange', callback: Callback<MicStateChangeEvent>): void;
}
```
## cl.multimedia.audio.004 getVolumeGroups()调用方式变更
getVolumeGroups()接口的调用方式变更。
**变更影响**
如不符合上述调用规则,将会在编译执行时出错。
**关键的接口/组件变更**
变更前
```js
getVolumeGroups(networkId: string, callback:AsyncCallback<VolumeGroupInfos>): void;
getVolumeGroups(networkId: string): Promise<VolumeGroupInfos>;
```
变更后
```js
getVolumeManager(): AudioVolumeManager;
interface AudioVolumeManager{
getVolumeGroupInfos(networkId: string, callback: AsyncCallback<VolumeGroupInfos>): void;
getVolumeGroupInfos(networkId: string): Promise<VolumeGroupInfos>;
}
```
## cl.multimedia.audio.005 getGroupManager()调用方式变更
getGroupManager()接口的调用方式变更。
**变更影响**
如不符合上述调用规则,将会在编译执行时出错。
**关键的接口/组件变更**
变更前
```js
getGroupManager(groupId: number, callback: AsyncCallback<AudioGroupManager>): void;
getGroupManager(groupId: number): Promise<AudioGroupManager>;
```
变更后
```js
getVolumeManager(): AudioVolumeManager;
interface AudioVolumeManager{
getVolumeGroupManager(groupId: number, callback: AsyncCallback<AudioVolumeGroupManager>): void;
getVolumeGroupManager(groupId: number): Promise<AudioVolumeGroupManager>;
}
```
## cl.multimedia.audio.006 枚举FocusType成员名变更
枚举FocusType中,成员FOCUS_TYPE_RECORDING重命名为FOCUS_TYPE_DEFAULT。
**变更影响**
如不符合上述调用规则,将会在编译执行时出错。
**关键的接口/组件变更**
变更前
```js
enum FocusType {
FOCUS_TYPE_RECORDING = 0,
}
```
变更后
```js
enum InterruptRequestType {
INTERRUPT_REQUEST_TYPE_DEFAULT = 0,
}
```
## cl.multimedia.audio.007 AudioRenderer中interrupt监听注册名称变更
AudioRenderer中on()函数的interrupt监听注册名称变更。
**变更影响**
如不符合上述调用规则,将会在编译执行时出错。
**关键的接口/组件变更**
变更前
```js
interface AudioRenderer {
on(type: 'interrupt', callback: Callback<InterruptEvent>): void;
}
```
变更后
```js
interface AudioRenderer {
on(type: 'audioInterrupt', callback: Callback<InterruptEvent>): void;
}
```
## cl.multimedia.media.001 VideoRecorder相关接口变更为systemapi
录制在MR版本会提供正式的AVRecorder(音视频合一)的接口给外部用户使用。
VideoRecorder相关的api9接口变更为systemapi,当前只提供给系统用户使用,未来等内部用户都切换为AVRecorder之后,废弃VideoRecorder相关接口。
**变更影响**
如果VideoRecorder的调用者非系统用户,会调用失败。
涉及接口以及枚举如下:
function createVideoRecorder(callback: AsyncCallback<VideoRecorder>): void;
function createVideoRecorder(): Promise<VideoRecorder>;
type VideoRecordState = 'idle' | 'prepared' | 'playing' | 'paused' | 'stopped' | 'error';
interface VideoRecorder{
prepare(config: VideoRecorderConfig, callback: AsyncCallback<void>): void;
prepare(config: VideoRecorderConfig): Promise<void>;
getInputSurface(callback: AsyncCallback<string>): void;
getInputSurface(): Promise<string>;
start(callback: AsyncCallback<void>): void;
start(): Promise<void>;
pause(callback: AsyncCallback<void>): void;
pause(): Promise<void>;
resume(callback: AsyncCallback<void>): void;
resume(): Promise<void>;
stop(callback: AsyncCallback<void>): void;
stop(): Promise<void>;
release(callback: AsyncCallback<void>): void;
release(): Promise<void>;
reset(callback: AsyncCallback<void>): void;
reset(): Promise<void>;
on(type: 'error', callback: ErrorCallback): void;
readonly state: VideoRecordState;
}
interface VideoRecorderProfile {
readonly audioBitrate: number;
readonly audioChannels: number;
readonly audioCodec: CodecMimeType;
readonly audioSampleRate: number;
readonly fileFormat: ContainerFormatType;
readonly videoBitrate: number;
readonly videoCodec: CodecMimeType;
readonly videoFrameWidth: number;
readonly videoFrameHeight: number;
readonly videoFrameRate: number;
}
enum AudioSourceType {
AUDIO_SOURCE_TYPE_DEFAULT = 0,
AUDIO_SOURCE_TYPE_MIC = 1,
}
enum VideoSourceType {
VIDEO_SOURCE_TYPE_SURFACE_YUV = 0,
VIDEO_SOURCE_TYPE_SURFACE_ES = 1,
}
enum VideoRecorderConfig {
audioSourceType?: AudioSourceType;
videoSourceType: VideoSourceType;
profile: VideoRecorderProfile;
url: string;
rotation?: number;
location?: Location;
}
## cl.multimedia.media.002 VideoPlayer中不对外提供多码率选择接口
VideoPlayer在API9中不对外提供多码率选择相关接口,相关接口会在MR版本中由AvPlayer提供。
**变更影响**
VideoPlayer多码率场景无法进行码率选择,相关功能由AVPlayer提供
**关键的接口/组件变更**
删除如下接口
interface VideoPlayer {
selectBitrate(bitrate: number): Promise<number>;
selectBitrate(bitrate: number, callback: AsyncCallback<number>): void;
on(type: 'availableBitratesCollect', callback: (bitrates: Array<number>) => void): void;
}
## cl.multimedia.media.003 VideoRecorder错误信息变更
VideoRecorder原有错误码与整体错误码规则不一致,变更错误码适配规则。
**变更影响**
VideoRecorder返回的错误码发生变更。
**关键的接口/组件变更**
VideoRecorder接口未发生变更,返回的错误码发生变更。
**适配指导**
异常处理具体参考接口文档。
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-media.md
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/errorcodes/errorcode-media.md
# 用户IAM子系统Changelog
## cl.useriam.1 API异常处理方式变更
用户IAM部分接口使用业务逻辑返回值表示错误信息,不符合OpenHarmony接口错误码规范。从API9开始作以下变更:
接口通过抛出异常的方式返回错误信息。
**变更影响**
基于此版本以前开发的应用不受影响,以后的需适配变更接口的错误信息返回方式,否则会影响业务逻辑。
**关键接口/组件变更**
为适配统一的API异常处理方式,对用户IAM相关接口进行废弃(下表中 原接口 列内容),并新增对应接口(下表中 新接口 列内容)。新增接口支持统一的错误码异常处理规范,功能上与原接口保持一致。
| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 |
| ---------------------- | ------------------- | ------------------------- | ------------------------ |
| ohos.userIAM.userAuth | UserAuth | constructor() | 废弃 |
| ohos.userIAM.userAuth | UserAuth | getVersion() : number | 废弃 |
| ohos.userIAM.userAuth | UserAuth | getAvailableStatus(authType : UserAuthType, authTrustLevel : AuthTrustLevel) : number | 废弃 |
| ohos.userIAM.userAuth | UserAuth | auth(challenge: Uint8Array, authType: UserAuthType, authTrustLevel: AuthTrustLevel, callback: IUserAuthCallback): Uint8Array | 废弃 |
| ohos.userIAM.userAuth | UserAuth | cancelAuth(contextID : Uint8Array) : number | 废弃 |
| ohos.userIAM.userAuth | IUserAuthCallback | onResult: (result : number, extraInfo : AuthResult) => void | 废弃 |
| ohos.userIAM.userAuth | IUserAuthCallback | onAcquireInfo ?: (module : number, acquire : number, extraInfo : any) => void | 废弃 |
| ohos.userIAM.userAuth | AuthResult | AuthResult {</br>token ?: Uint8Array; </br>remainTimes ?: number; </br>freezingTime ?: number;} | 废弃 |
| ohos.userIAM.userAuth | 枚举 | ResultCode {</br>SUCCESS = 0, </br>FAIL = 1, </br>GENERAL_ERROR = 2, </br>CANCELED = 3, </br>TIMEOUT = 4, </br>TYPE_NOT_SUPPORT = 5, </br>TRUST_LEVEL_NOT_SUPPORT = 6, </br>BUSY = 7, </br>INVALID_PARAMETERS = 8, </br>LOCKED = 9, </br>NOT_ENROLLED = 10,} | 废弃 |
| ohos.userIAM.userAuth | type | AuthEventKey = "result" | 新增 |
| ohos.userIAM.userAuth | type | EventInfo = AuthResultInfo | 新增 |
| ohos.userIAM.userAuth | AuthResultInfo | AuthResultInfo {</br>result : number; </br>token ?: Uint8Array; </br>remainAttempts ?: number; </br>lockoutDuration ?: number;} | 新增 |
| ohos.userIAM.userAuth | TipInfo | TipInfo {</br>module : number; </br>tip : number;} | 新增 |
| ohos.userIAM.userAuth | AuthInstance | AuthInstance {</br>on: (name: AuthEventKey, callback: AuthEvent) => void; </br>off: (name: AuthEventKey) => void; </br>start: () => void; </br>cancel: () => void;} | 新增 |
| ohos.userIAM.userAuth | 枚举 | ResultCodeV9 {</br>SUCCESS = 12500000, </br>FAIL = 12500001, </br>GENERAL_ERROR = 12500002, </br>CANCELED = 12500003, </br>TIMEOUT = 12500004, </br>TYPE_NOT_SUPPORT = 12500005, </br>TRUST_LEVEL_NOT_SUPPORT = 12500006, </br>BUSY = 12500007, </br>LOCKED = 12500009, </br>NOT_ENROLLED = 12500010,} | 新增 |
| ohos.userIAM.userAuth | function | getAuthInstance(challenge : Uint8Array, authType : UserAuthType, authTrustLevel : AuthTrustLevel) : AuthInstance | 新增 |
| ohos.userIAM.userAuth | function | getVersion() : number | 新增 |
| ohos.userIAM.userAuth | function | getAvailableStatus(authType : UserAuthType, authTrustLevel : AuthTrustLevel) : void | 新增 |
| ohos.userIAM.faceAuth | FaceAuthManager | setSurfaceId(surfaceId : string) : ResultCode | 删除 |
| ohos.userIAM.faceAuth | 枚举 | ResultCode {</br>SUCCESS = 0, </br>FAIL = 1,} | 删除 |
| ohos.userIAM.faceAuth | FaceAuthManager | setSurfaceId(surfaceId: string) : void | 新增 |
**适配指导**
以getVersion接口为例,示例代码如下:
```js
import userIAM_userAuth from '@ohos.userIAM.userAuth';
try {
let version = userIAM_userAuth.getVersion();
console.info("auth version = " + version);
} catch (error) {
console.info("get version failed, error = " + error);
}
```
更多接口的示例代码可参考[用户认证API文档](../../../application-dev/reference/apis/js-apis-useriam-userauth.md)[人脸认证API文档](../../../application-dev/reference/apis/js-apis-useriam-faceauth.md)
## cl.useriam.2 接口调用权限变更
用户IAM部分接口只允许被系统应用调起,需要做系统应用运行时鉴权。从API9开始作以下变更:
人脸认证模块的setSurfaceId接口增加判别是否为系统应用的逻辑,非系统应用无法调用该接口。
**变更影响**
基于此版本以前开发的应用不受影响,以后的需要持有相应权限,否则无法正常调用接口。
**关键接口/组件变更**
setSurfaceId接口的实现中增加系统应用鉴权处理,非系统应用调用将返回202错误码。
**适配指导**
需要修改[应用签名](https://gitee.com/openharmony/developtools_hapsigner/tree/master/dist)相关文件UnsgnedReleasedProfileTemplate.json,其中的app-feature字段要改为"hos_system_app",才可保证签名所得到的应用是系统应用。
# 分布式调度子系统ChangeLog
## cl.DistributedManagerService.1 continuationManager接口新增DATASYNC权限校验
此前版本continuationManager接口未对调用方进行校验,不符合OpenHarmony的API接口规范。
已做出以下变更:调用方使用continuationManager前需提前申请"ohos.permission.DISTRIBUTED_DATASYNC"权限。
**变更影响**
基于此前版本开发的应用,需提前申请"ohos.permission.DISTRIBUTED_DATASYNC"权限,否则会影响原有业务逻辑。
**关键的接口/组件变更**
涉及接口
- continuationManager.registerContinuation;
- continuationManager.on;
- continuationManager.off;
- continuationManager.unregisterContinuation;
- continuationManager.updateContinuationState;
- continuationManager.startContinuationDeviceManager;
# web子系统ChangeLog
OpenHarmony 3.2.9.1 sp8版本相较于OpenHarmony 3.2.8.1版本,web的API变更如下
## cl.web.1 删除无用错误码
web子系统webviewController接口存在变更:
- 去除forward,backward和backOrForward接口的@throws { BusinessError } 17100007 - Invalid back or forward operation.
- 去除zoom,zoomIn和zoomOut接口的@throws { BusinessError } 17100009 - Cannot zoom in or zoom out.
开发者需要根据以下说明对应用进行适配。
**变更影响**
影响已发布的JS接口,应用无需进行适配即可在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
涉及接口: forward, backward, backOrForward, zoom, zoomIn, zoomOut;
涉及组件: web;
**适配指导**
无需适配
## cl.web.2 setWebController入参修改
已发布的部分web子系统controller迁移至webviewController,老的webController做废弃处理。从API9开始做出以下变更:
setWebController入参由老controller替换为新的webviewController
**变更影响**
基于此前版本开发的应用,需适配变更js接口的入参,否则会影响原有功能。
**关键的接口/组件变更**
- 涉及接口
setWebController(controller: WebviewController): void;
- 变更前:
```js
setWebController(controller: WebController): void;
```
- 变更后:
```js
setWebController(controller: WebviewController): void;
```
**适配指导**
示例代码如下:
变更前:
```js
// xxx.ets
@Entry
@Component
struct WebComponent {
controller:WebController = new WebController()
build() {
Column() {
Web({ src:'www.example.com', controller: this.controller })
.multiWindowAccess(true)
.onWindowNew((event) => {
console.log("onWindowNew...")
var popController: WebController = new WebController()
event.handler.setWebController(popController)
})
}
}
}
```
变更后:
```js
// xxx.ets
@Entry
@Component
struct WebComponent {
controller: web_webview.WebviewController = new web_webview.WebviewController()
build() {
Column() {
Web({ src:'www.example.com', controller: this.controller })
.multiWindowAccess(true)
.onWindowNew((event) => {
console.log("onWindowNew...")
var popController: web_webview.WebviewController = new web_webview.WebviewController()
event.handler.setWebController(popController)
})
}
}
}
```
## cl.web.3 getUnfilterendLinkUrl接口名修改
getUnfilterendLinkUrl接口拼写错误,应改为getUnfilteredLinkUrl
**变更影响**
基于此前版本开发的应用,需适配变更js接口名,否则会影响原有功能。
**关键的接口/组件变更**
- 涉及接口
getUnfilteredLinkUrl(): string;
- 变更前:
```js
getUnfilterendLinkUrl(): string;
```
- 变更后:
```js
getUnfilteredLinkUrl(): string;
```
**适配指导**
基于此前版本开发的应用,需适配变更js接口名,使用新的接口名替换旧的接口名,否则会影响原有功能。
\ No newline at end of file
...@@ -48,3 +48,21 @@ arkui子系统xcomponent组件接口存在变更: ...@@ -48,3 +48,21 @@ arkui子系统xcomponent组件接口存在变更:
- 指定返回值类型为Object - 指定返回值类型为Object
- 开发者需要按照Object类型处理返回值 - 开发者需要按照Object类型处理返回值
## cl.arkui.2 弹窗类组件接口样式变更
ArkUI子系统alertDialog, actionSheet, customDialog组件及prompt, promptAction接口存在样式变更:
- promptAction.showDialog, promptAction.showActionMenu, alertDialog, actionSheet, customDialog更新弹窗底板模糊效果
**变更影响**
默认弹窗底板模糊效果
**关键的接口/组件变更**
涉及接口: promptAction.showDialog, promptAction.showActionMenu;
涉及组件: alertDialog, actionSheet, customDialog
**适配指导**
无需适配
\ No newline at end of file
# wantAgent的JS API变更Changelog
OpenHarmony 3.2.9.1 sp8版本相较于OpenHarmony 3.2.8.1版本,wantAgent的API变更如下
## cl.url.1.trigger类接口变更
trigger(agent: WantAgent, triggerInfo: TriggerInfo, callback?: Callback<CompleteData>): void ;
因部分功能未实现,已对其进行删除,应用可调用下面接口进行替代:
trigger(agent: WantAgent, triggerInfo: TriggerInfo, callback?: AsyncCallback<CompleteData>): void
**变更影响**
影响已发布的JS接口,应用需要进行适配,才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
| OpenHarmony 3.2.8.1版本接口 | OpenHarmony 3.2.9.1 sp8版本接口 |
| ------------------------------------------------------------ | ------------------------------------------------------------ |
| trigger(agent: WantAgent, triggerInfo: TriggerInfo, callback?: Callback<CompleteData>): void ; | trigger(agent: WantAgent, triggerInfo: TriggerInfo, callback?: AsyncCallback<CompleteData>): void |
**适配指导**
应用中调用替代的trigger接口可参考下列代码
示例:
```ts
import WantAgent from '@ohos.app.ability.wantAgent';
//wantAgent对象
var wantAgent;
// triggerInfo
var triggerInfo = {
code: 0
}
//WantAgentInfo对象
var wantAgentInfo = {
wants: [
{
deviceId: "deviceId",
bundleName: "com.neu.setResultOnAbilityResultTest1",
abilityName: "com.example.test.MainAbility",
action: "action1",
entities: ["entity1"],
type: "MIMETYPE",
uri: "key={true,true,false}",
parameters:
{
mykey0: 2222,
mykey1: [1, 2, 3],
mykey2: "[1, 2, 3]",
mykey3: "ssssssssssssssssssssssssss",
mykey4: [false, true, false],
mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"],
mykey6: true,
}
}
],
operationType: WantAgent.OperationType.START_ABILITIES,
requestCode: 0,
wantAgentFlags:[WantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
}
//getWantAgent回调
function getWantAgentCallback(err, data) {
if (err == undefined) {
wantAgent = data;
} else {
console.info('getWantAgent failed' + JSON.stringify(wantAgent));
}
//getUid回调
function triggerCallback(err, data) {
if(err) {
console.info('getUid failed!' + JSON.stringify(err.code) + JSON.stringify(err.message));
} else {
console.info('getUid ok!' + JSON.stringify(data));
}
}
try {
WantAgent.trigger(wantAgent, triggerInfo, triggerCallback);
} catch(err) {
console.info('getUid failed!' + JSON.stringify(err.code) + JSON.stringify(err.message));
}
}
try{
WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback);
} catch(err){
console.info('getWantAgent failed!' + JSON.stringify(err.code) + JSON.stringify(err.message));
}
```
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
- [术语](glossary.md) - [术语](glossary.md)
- 版本说明 - 版本说明
- OpenHarmony 3.x Releases - OpenHarmony 3.x Releases
- [OpenHarmony v3.2 Beta4 (2022-11-30)](release-notes/OpenHarmony-v3.2-beta4.md)
- [OpenHarmony v3.2 Beta3 (2022-09-30)](release-notes/OpenHarmony-v3.2-beta3.md) - [OpenHarmony v3.2 Beta3 (2022-09-30)](release-notes/OpenHarmony-v3.2-beta3.md)
- [OpenHarmony v3.2 Beta2 (2022-07-30)](release-notes/OpenHarmony-v3.2-beta2.md) - [OpenHarmony v3.2 Beta2 (2022-07-30)](release-notes/OpenHarmony-v3.2-beta2.md)
- [OpenHarmony v3.2 Beta1 (2022-05-31)](release-notes/OpenHarmony-v3.2-beta1.md) - [OpenHarmony v3.2 Beta1 (2022-05-31)](release-notes/OpenHarmony-v3.2-beta1.md)
...@@ -34,6 +35,40 @@ ...@@ -34,6 +35,40 @@
- [OpenHarmony v1.1.0 LTS (2021-04-01)](release-notes/OpenHarmony-1-1-0-LTS.md) - [OpenHarmony v1.1.0 LTS (2021-04-01)](release-notes/OpenHarmony-1-1-0-LTS.md)
- API差异报告 - API差异报告
- OpenHarmony 3.2 Beta4
- JS API差异报告
- [元能力](release-notes/api-diff/v3.2-beta4/js-apidiff-ability.md)
- [无障碍](release-notes/api-diff/v3.2-beta4/js-apidiff-accessibility.md)
- [帐号](release-notes/api-diff/v3.2-beta4/js-apidiff-account.md)
- [应用](release-notes/api-diff/v3.2-beta4/js-apidiff-application.md)
- [ArkUI](release-notes/api-diff/v3.2-beta4/js-apidiff-arkui.md)
- [电源服务](release-notes/api-diff/v3.2-beta4/js-apidiff-battery.md)
- [包管理](release-notes/api-diff/v3.2-beta4/js-apidiff-bundle.md)
- [网络及通信](release-notes/api-diff/v3.2-beta4/js-apidiff-communication.md)
- [语言编译器运行时](release-notes/api-diff/v3.2-beta4/js-apidiff-compiler-and-runtime.md)
- [定制](release-notes/api-diff/v3.2-beta4/js-apidiff-customization.md)
- [DFX](release-notes/api-diff/v3.2-beta4/js-apidiff-dfx.md)
- [分布式数据](release-notes/api-diff/v3.2-beta4/js-apidiff-distributed-data.md)
- [分布式硬件](release-notes/api-diff/v3.2-beta4/js-apidiff-distributed-hardware.md)
- [文件管理](release-notes/api-diff/v3.2-beta4/js-apidiff-file-management.md)
- [位置服务](release-notes/api-diff/v3.2-beta4/js-apidiff-geolocation.md)
- [全球化](release-notes/api-diff/v3.2-beta4/js-apidiff-global.md)
- [Misc软件](release-notes/api-diff/v3.2-beta4/js-apidiff-misc.md)
- [MSDP](release-notes/api-diff/v3.2-beta4/js-apidiff-msdp.md)
- [多模输入](release-notes/api-diff/v3.2-beta4/js-apidiff-multi-modal-input.md)
- [媒体服务](release-notes/api-diff/v3.2-beta4/js-apidiff-multimedia.md)
- [事件与通知](release-notes/api-diff/v3.2-beta4/js-apidiff-notification.md)
- [资源调度](release-notes/api-diff/v3.2-beta4/js-apidiff-resource-scheduler.md)
- [安全](release-notes/api-diff/v3.2-beta4/js-apidiff-security.md)
- [泛Sensor](release-notes/api-diff/v3.2-beta4/js-apidiff-sensor.md)
- [启动](release-notes/api-diff/v3.2-beta4/js-apidiff-start-up.md)
- [电话服务](release-notes/api-diff/v3.2-beta4/js-apidiff-telephony.md)
- [测试服务](release-notes/api-diff/v3.2-beta4/js-apidiff-unitest.md)
- [升级](release-notes/api-diff/v3.2-beta4/js-apidiff-update.md)
- [USB服务](release-notes/api-diff/v3.2-beta4/js-apidiff-usb.md)
- [用户IAM](release-notes/api-diff/v3.2-beta4/js-apidiff-user-iam.md)
- [Web](release-notes/api-diff/v3.2-beta4/js-apidiff-web.md)
- [窗口管理](release-notes/api-diff/v3.2-beta4/js-apidiff-window.md)
- OpenHarmony 3.2 Beta3 - OpenHarmony 3.2 Beta3
- JS API差异报告 - JS API差异报告
- [元能力](release-notes/api-diff/v3.2-beta3/js-apidiff-ability.md) - [元能力](release-notes/api-diff/v3.2-beta3/js-apidiff-ability.md)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册