提交 07c46324 编写于 作者: Z zengyawen

Merge branch 'master' of https://gitee.com/zengyawen/docs

...@@ -169,3 +169,105 @@ export default function abilityTest() { ...@@ -169,3 +169,105 @@ export default function abilityTest() {
测试执行完毕后可直接在DevEco Studio中查看测试结果,如下图示例所示: 测试执行完毕后可直接在DevEco Studio中查看测试结果,如下图示例所示:
![](figures/TestResult.PNG) ![](figures/TestResult.PNG)
## 常见问题
### 单元测试用例常见问题
**1、用例中增加的打印日志在用例结果之后才打印**
**问题描述**
用例中增加的日志打印信息,没有在用例执行过程中出现,而是在用例执行结束之后才出现。
**可能原因**
此类情况只会存在于用例中有调用异步接口的情况,原则上用例中所有的日志信息均在用例执行结束之前打印。
**解决方法**
当被调用的异步接口多于一个时,建议将接口调用封装成Promise方式调用。
**2、执行用例时报error:fail to start ability**
**问题描述**
执行测试用例时候,用例执行失败,控制台返回错误:fail to start ability。
**可能原因**
测试包打包过程中出现问题,未将测试框架依赖文件打包在测试包中。
**解决方法**
检查测试包中是否包含OpenHarmonyTestRunner.abc文件,如没有则重新编译打包后再次执行测试。
**3、执行用例时报用例超时错误**
**问题描述**
用例执行结束,控制台提示execute time XXms错误,即用例执行超时
**可能原因**
1.用例执行异步接口,但执行过程中没有执行到done函数,导致用例执行一直没有结束,直到超时结束。
2.用例调用函数耗时过长,超过用例执行设置的超时时间。
**解决方法**
1.检查用例代码逻辑,确保即使断言失败场景认可走到done函数,保证用例执行结束。
2.可在IDE中Run/Debug Configurations中修改用例执行超时配置参数,避免用例执行超时。
### UI测试用例常见问题
**1、失败日志有“Get windows failed/GetRootByWindow failed”错误信息**
**问题描述**
UI测试用例执行失败,查看hilog日志发现日志中有“Get windows failed/GetRootByWindow failed”错误信息。
**可能原因**
系统ArkUI开关未开启,导致被测试界面控件树信息未生成。
**解决方法**
执行如下命令,并重启设备再次执行用例。
```shell
hdc shell param set persist.ace.testmode.enabled 1
```
**2、失败日志有“uitest-api dose not allow calling concurrently”错误信息**
**问题描述**
UI测试用例执行失败,查看hilog日志发现日志中有“uitest-api dose not allow calling concurrently”错误信息。
**可能原因**
1.用例中UI测试框架提供异步接口没有增加await语法糖调用。
2.多进程执行UI测试用例,导致拉起多个UITest进程,框架不支持多进程调用。
**解决方法**
1.检查用例实现,异步接口增加await语法糖调用。
2.避免多进程执行UI测试用例。
**3、失败日志有“dose not exist on current UI! Check if the UI has changed after you got the widget object”错误信息**
**问题描述**
UI测试用例执行失败,查看hilog日志发现日志中有“dose not exist on current UI! Check if the UI has changed after you got the widget object”错误信息。
**可能原因**
在用例中代码查找到目标控件后,设备界面发生了变化,导致查找到的控件丢失,无法进行下一步的模拟操作。
**解决方法**
重新执行UI测试用例。
# SysCap使用指南 # 系统能力SystemCapability使用指南
## 概述 ## 概述
### 系统能力与 API ### 系统能力与 API
SysCap,全称SystemCapability,即系统能力,指操作系统中每一个相对独立的特性,如蓝牙,WIFI,NFC,摄像头等,都是系统能力之一。每个系统能力对应多个 API,这些 API 绑定在一起,随着目标设备是否支持该系统能力共同存在或消失,也会随着 IDE 一起提供给开发者做联想。 SysCap,全称SystemCapability,即系统能力,指操作系统中每一个相对独立的特性,如蓝牙,WIFI,NFC,摄像头等,都是系统能力之一。每个系统能力对应多个API,随着目标设备是否支持该系统能力共同存在或消失,也会随着DevEco Studio一起提供给开发者做联想。
![image-20220326064841782](figures/image-20220326064841782.png) ![image-20220326064841782](figures/image-20220326064841782.png)
开发者可以在[SysCap列表](../reference/syscap-list.md)中查询OpenHarmony的能力集。 开发者可以在[SysCap列表](../reference/syscap-list.md)中查询OpenHarmony的能力集。
### 支持能力集,联想能力集与要求能力集 ### 支持能力集,联想能力集与要求能力集
支持能力集,联想能力集与要求能力集都是系统能力的集合。 支持能力集,联想能力集与要求能力集都是系统能力的集合。
支持能力集描述的是设备能力,要求能力集描述的是应用能力。若应用A的要求能力集是设备N的支持能力集的子集,则应用A可分发到设备N上安装运行,否则不能分发。 支持能力集描述的是设备能力,要求能力集描述的是应用能力。若应用A的要求能力集是设备N的支持能力集的子集,则应用A可分发到设备N上安装运行,否则不能分发。
联想能力集是该应用开发时,IDE 可联想的 API 所在的系统能力集合。 联想能力集是该应用开发时,DevEco Studio可联想的API所在的系统能力集合。
![image-20220326064913834](figures/image-20220326064913834.png) ![image-20220326064913834](figures/image-20220326064913834.png)
### 设备与支持能力集 ### 设备与支持能力集
每个设备根据其硬件能力,对应不同的支持能力集。 每个设备根据其硬件能力,对应不同的支持能力集。
SDK 将设备分为两组,典型设备和自定义设备,典型设备的支持能力集由 OpenHarmony 来定义,自定义设备由设备厂商给出。 SDK将设备分为两组,典型设备和自定义设备,典型设备的支持能力集由OpenHarmony来定义,自定义设备由设备厂商给出。
![image-20220326064955505](figures/image-20220326064955505.png) ![image-20220326064955505](figures/image-20220326064955505.png)
### 设备与SDK能力的对应 ### 设备与SDK能力的对应
SDK 提供全量的 API 给 IDE,IDE 通过开发者的项目支持的设备,找到该设备的支持能力集,筛选支持能力集包含的 API 提供给开发者做联想。 SDK向DevEco Studio提供全量API,DevEco Studio识别开发者项目中选择的设备形态,找到该设备的支持能力集,筛选支持能力集包含的API并提供API联想。
![image-20220326065043006](figures/image-20220326065043006.png) ![image-20220326065043006](figures/image-20220326065043006.png)
## SysCap开发指导 ## SysCap开发指导
### PCID获取 ### PCID获取
PCID,全称 Product Compatibility ID,包含当前设备支持的 syscap 信息。获取所有设备 PCID 的认证中心正在建设中,目前需要找对应设备的厂商获取该设备的 PCID。 PCID,全称Product Compatibility ID,包含当前设备支持的SysCap信息。获取所有设备PCID的认证中心正在建设中,目前需要找对应设备的厂商获取该设备的PCID。
### PCID导入 ### PCID导入
DevEco Studio 工程支持 PCID 的导入。导入的 PCID 文件解码后输出的 syscap 会被写入 syscap.json 文件中。 DevEco Studio工程支持PCID的导入。导入的PCID文件解码后输出的SysCap会被写入syscap.json文件中。
在工程目录右键后选择 Import Product Compatibility ID,即可上传 PCID 文件并导入至 syscap.json 中。 在工程目录右键后选择Import Product Compatibility ID,即可上传PCID文件并导入至syscap.json中。
![20220329-103626](figures/20220329-103626.gif) ![20220329-103626](figures/20220329-103626.gif)
### 配置联想能力集和要求能力集 ### 配置联想能力集和要求能力集
IDE 会根据创建的工程所支持的设置自动配置联想能力集和要求能力集,开发者也可以自行修改。 DevEco Studio会根据创建的工程所支持的设置自动配置联想能力集和要求能力集,开发者也可以自行修改。
对于联想能力集,开发者通过添加更多的系统能力,在 IDE 中可以使用更多的 API,但要注意这些 API 可能在设备上不支持,使用前需要判断。 对于联想能力集,开发者通过添加更多的系统能力,在DevEco Studio中可以使用更多的API,但要注意这些API可能在设备上不支持,使用前需要判断。
对于要求能力集,开发者修改时要十分慎重,修改不当会导致应用无法分发到目标设备上。 对于要求能力集,开发者修改时要十分慎重,修改不当会导致应用无法分发到目标设备上。
```json ```json
...@@ -91,51 +79,44 @@ IDE 会根据创建的工程所支持的设置自动配置联想能力集和要 ...@@ -91,51 +79,44 @@ IDE 会根据创建的工程所支持的设置自动配置联想能力集和要
} }
``` ```
### 单设备应用开发 ### 单设备应用开发
默认应用的联想能力集,要求系统能力集和设备的支持系统能力集相等,开发者修改要求能力集需要慎重。 默认应用的联想能力集,要求系统能力集和设备的支持系统能力集相等,开发者修改要求能力集需要慎重。
![image-20220326065124911](figures/image-20220326065124911.png) ![image-20220326065124911](figures/image-20220326065124911.png)
### 跨设备应用开发 ### 跨设备应用开发
默认应用的联想能力集是多个设备支持能力集的并集,要求能力集则是交集。 默认应用的联想能力集是多个设备支持能力集的并集,要求能力集则是交集。
![image-20220326065201867](figures/image-20220326065201867.png) ![image-20220326065201867](figures/image-20220326065201867.png)
### 判断 API 是否可以使用 ### 判断 API 是否可以使用
首先我们定义了 API canIUse 帮助开发者来判断该工程是否支持某个特定的syscap。 - 方法1:OpenHarmony定义了API canIUse帮助开发者来判断该工程是否支持某个特定的syscap。
``` ```
if (canIUse("SystemCapability.ArkUI.ArkUI.Full")) { if (canIUse("SystemCapability.ArkUI.ArkUI.Full")) {
console.log("该应用支持SystemCapability.ArkUI.ArkUI.Full"); console.log("该应用支持SystemCapability.ArkUI.ArkUI.Full");
} else { } else {
console.log("该应用不支持SystemCapability.ArkUI.ArkUI.Full"); console.log("该应用不支持SystemCapability.ArkUI.ArkUI.Full");
} }
``` ```
开发者可通过 import 的方式将模块导入,若当前设备不支持该模块,import 的结果为 undefined,开发者在使用其 API 时,需要判断其是否存在。
``` - 方法2:开发者可通过 import 的方式将模块导入,若当前设备不支持该模块,import 的结果为 undefined,开发者在使用其 API 时,需要判断其是否存在。
import geolocation from '@ohos.geolocation';
if (geolocation) {
geolocation.getCurrentLocation((location) => {
console.log(location.latitude, location.longitude);
});
} else {
console.log('该设备不支持位置信息');
}
```
```
import geolocation from '@ohos.geolocation';
if (geolocation) {
geolocation.getCurrentLocation((location) => {
console.log(location.latitude, location.longitude);
});
} else {
console.log('该设备不支持位置信息');
}
```
除此之外,开发者可以通过API参考文档查询API接口所属的SysCap。
### 不同设备相同能力的差异检查 ### 不同设备相同能力的差异检查
...@@ -159,7 +140,6 @@ authenticator.execute('FACE_ONLY', 'S1', (err, result) => { ...@@ -159,7 +140,6 @@ authenticator.execute('FACE_ONLY', 'S1', (err, result) => {
}) })
``` ```
### 设备间的SysCap差异如何产生的 ### 设备间的SysCap差异如何产生的
设备的SysCap因产品解决方案厂商拼装的部件组合不同而不同,整体流程如下图: 设备的SysCap因产品解决方案厂商拼装的部件组合不同而不同,整体流程如下图:
......
...@@ -231,6 +231,7 @@ ...@@ -231,6 +231,7 @@
- [@ohos.batteryStatistics (耗电统计)](js-apis-batteryStatistics.md) - [@ohos.batteryStatistics (耗电统计)](js-apis-batteryStatistics.md)
- [@ohos.brightness (屏幕亮度)](js-apis-brightness.md) - [@ohos.brightness (屏幕亮度)](js-apis-brightness.md)
- [@ohos.deviceInfo (设备信息)](js-apis-device-info.md) - [@ohos.deviceInfo (设备信息)](js-apis-device-info.md)
- [@ohos.devicestatus (设备状态感知框架)](js-apis-stationary.md)
- [@ohos.distributedHardware.deviceManager (设备管理)](js-apis-device-manager.md) - [@ohos.distributedHardware.deviceManager (设备管理)](js-apis-device-manager.md)
- [@ohos.geoLocationManager (位置服务)](js-apis-geoLocationManager.md) - [@ohos.geoLocationManager (位置服务)](js-apis-geoLocationManager.md)
- [@ohos.multimodalInput.inputConsumer (组合按键)](js-apis-inputconsumer.md) - [@ohos.multimodalInput.inputConsumer (组合按键)](js-apis-inputconsumer.md)
...@@ -311,6 +312,7 @@ ...@@ -311,6 +312,7 @@
- [@ohos.reminderAgent (后台代理提醒)](js-apis-reminderAgent.md) - [@ohos.reminderAgent (后台代理提醒)](js-apis-reminderAgent.md)
- [@ohos.systemParameter (系统属性)](js-apis-system-parameter.md) - [@ohos.systemParameter (系统属性)](js-apis-system-parameter.md)
- [@ohos.usb (USB管理)](js-apis-usb-deprecated.md) - [@ohos.usb (USB管理)](js-apis-usb-deprecated.md)
- [@ohos.workScheduler (延迟任务调度)](js-apis-workScheduler.md)
- [@system.app (应用上下文)](js-apis-system-app.md) - [@system.app (应用上下文)](js-apis-system-app.md)
- [@system.battery (电量信息)](js-apis-system-battery.md) - [@system.battery (电量信息)](js-apis-system-battery.md)
- [@system.bluetooth (蓝牙)](js-apis-system-bluetooth.md) - [@system.bluetooth (蓝牙)](js-apis-system-bluetooth.md)
......
# AbilityRunningInfo # AbilityRunningInfo
AbilityRunningInfo模块提供对Ability运行的相关信息和状态进行设置和查询的能力 AbilityRunningInfo模块提供对Ability运行的相关信息和状态的定义
> **说明:** > **说明:**
> >
......
...@@ -339,13 +339,15 @@ onSaveState(reason: AbilityConstant.StateType, wantParam : {[key: string]: any}) ...@@ -339,13 +339,15 @@ onSaveState(reason: AbilityConstant.StateType, wantParam : {[key: string]: any})
**示例:** **示例:**
```js ```js
class myAbility extends Ability { import AbilityConstant from '@ohos.application.AbilityConstant'
onSaveState(reason, wantParam) {
console.log('onSaveState'); class myAbility extends Ability {
wantParams["myData"] = "my1234567"; onSaveState(reason, wantParam) {
return AbilityConstant.OnSaveResult.RECOVERY_AGREE; console.log('onSaveState');
} wantParam["myData"] = "my1234567";
} return AbilityConstant.OnSaveResult.RECOVERY_AGREE;
}
}
``` ```
......
...@@ -22,7 +22,7 @@ abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator(); ...@@ -22,7 +22,7 @@ abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator();
### addAbilityMonitor<sup>9+</sup> ### addAbilityMonitor<sup>9+</sup>
addAbilityMonitor(monitor: AbilityMonitor, callback: AsyncCallback\<void>): void addAbilityMonitor(monitor: AbilityMonitor, callback: AsyncCallback\<void>): void;
添加AbilityMonitor实例(callback形式) 添加AbilityMonitor实例(callback形式)
...@@ -30,7 +30,7 @@ addAbilityMonitor(monitor: AbilityMonitor, callback: AsyncCallback\<void>): void ...@@ -30,7 +30,7 @@ addAbilityMonitor(monitor: AbilityMonitor, callback: AsyncCallback\<void>): void
**参数:** **参数:**
| 参数名 | 类型 | 必填说明 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------------------------------ | -------- | ------------------------------------------------------------ | | -------- | ------------------------------------------------------------ | -------- | ------------------------------------------------------------ |
| monitor | [AbilityMonitor](js-apis-application-abilityMonitor.md#AbilityMonitor) | 是 | [AbilityMonitor](js-apis-application-abilityMonitor.md#AbilityMonitor)实例 | | monitor | [AbilityMonitor](js-apis-application-abilityMonitor.md#AbilityMonitor) | 是 | [AbilityMonitor](js-apis-application-abilityMonitor.md#AbilityMonitor)实例 |
| callback | AsyncCallback\<void> | 是 | 表示指定的回调方法 | | callback | AsyncCallback\<void> | 是 | 表示指定的回调方法 |
...@@ -55,11 +55,9 @@ abilityDelegator.addAbilityMonitor(monitor, (err : any) => { ...@@ -55,11 +55,9 @@ abilityDelegator.addAbilityMonitor(monitor, (err : any) => {
}); });
``` ```
### addAbilityMonitor<sup>9+</sup> ### addAbilityMonitor<sup>9+</sup>
addAbilityMonitor(monitor: AbilityMonitor): Promise\<void> addAbilityMonitor(monitor: AbilityMonitor): Promise\<void>;
添加AbilityMonitor实例(promise形式) 添加AbilityMonitor实例(promise形式)
...@@ -101,7 +99,7 @@ abilityDelegator.addAbilityMonitor(monitor).then(() => { ...@@ -101,7 +99,7 @@ abilityDelegator.addAbilityMonitor(monitor).then(() => {
### removeAbilityMonitor<sup>9+</sup> ### removeAbilityMonitor<sup>9+</sup>
removeAbilityMonitor(monitor: AbilityMonitor, callback: AsyncCallback\<void>): void removeAbilityMonitor(monitor: AbilityMonitor, callback: AsyncCallback\<void>): void;
删除已经添加的AbilityMonitor实例(callback形式) 删除已经添加的AbilityMonitor实例(callback形式)
...@@ -138,7 +136,7 @@ abilityDelegator.removeAbilityMonitor(monitor, (err : any) => { ...@@ -138,7 +136,7 @@ abilityDelegator.removeAbilityMonitor(monitor, (err : any) => {
### removeAbilityMonitor<sup>9+</sup> ### removeAbilityMonitor<sup>9+</sup>
removeAbilityMonitor(monitor: AbilityMonitor): Promise\<void> removeAbilityMonitor(monitor: AbilityMonitor): Promise\<void>;
删除已经添加的AbilityMonitor实例(promise形式) 删除已经添加的AbilityMonitor实例(promise形式)
...@@ -146,7 +144,7 @@ removeAbilityMonitor(monitor: AbilityMonitor): Promise\<void> ...@@ -146,7 +144,7 @@ removeAbilityMonitor(monitor: AbilityMonitor): Promise\<void>
**参数:** **参数:**
| 名称 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| ------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | | ------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
| monitor | [AbilityMonitor](js-apis-application-abilityMonitor.md#AbilityMonitor) | 是 | [AbilityMonitor](js-apis-application-abilityMonitor.md#AbilityMonitor)实例 | | monitor | [AbilityMonitor](js-apis-application-abilityMonitor.md#AbilityMonitor) | 是 | [AbilityMonitor](js-apis-application-abilityMonitor.md#AbilityMonitor)实例 |
...@@ -180,7 +178,7 @@ abilityDelegator.removeAbilityMonitor(monitor).then(() => { ...@@ -180,7 +178,7 @@ abilityDelegator.removeAbilityMonitor(monitor).then(() => {
### waitAbilityMonitor<sup>9+</sup> ### waitAbilityMonitor<sup>9+</sup>
waitAbilityMonitor(monitor: AbilityMonitor, callback: AsyncCallback\<Ability>): void waitAbilityMonitor(monitor: AbilityMonitor, callback: AsyncCallback\<UIAbility>): void;
等待与AbilityMonitor实例匹配的ability到达OnCreate生命周期,并返回ability实例(callback形式) 等待与AbilityMonitor实例匹配的ability到达OnCreate生命周期,并返回ability实例(callback形式)
...@@ -191,7 +189,7 @@ waitAbilityMonitor(monitor: AbilityMonitor, callback: AsyncCallback\<Ability>): ...@@ -191,7 +189,7 @@ waitAbilityMonitor(monitor: AbilityMonitor, callback: AsyncCallback\<Ability>):
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | | -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
| monitor | [AbilityMonitor](js-apis-application-abilityMonitor.md#AbilityMonitor) | 是 | [AbilityMonitor](js-apis-application-abilityMonitor.md#AbilityMonitor)实例 | | monitor | [AbilityMonitor](js-apis-application-abilityMonitor.md#AbilityMonitor) | 是 | [AbilityMonitor](js-apis-application-abilityMonitor.md#AbilityMonitor)实例 |
| callback | AsyncCallback\<[Ability](js-apis-application-ability.md#Ability)> | 是 | 表示指定的回调方法 | | callback | AsyncCallback\<[UIAbility](js-apis-application-ability.md#Ability)> | 是 | 表示指定的回调方法 |
**示例:** **示例:**
...@@ -213,11 +211,9 @@ abilityDelegator.waitAbilityMonitor(monitor, (err : any, data : any) => { ...@@ -213,11 +211,9 @@ abilityDelegator.waitAbilityMonitor(monitor, (err : any, data : any) => {
}); });
``` ```
### waitAbilityMonitor<sup>9+</sup> ### waitAbilityMonitor<sup>9+</sup>
waitAbilityMonitor(monitor: AbilityMonitor, timeout: number, callback: AsyncCallback\<Ability>): void waitAbilityMonitor(monitor: AbilityMonitor, timeout: number, callback: AsyncCallback\<UIAbility>): void;
设置等待时间,等待与AbilityMonitor实例匹配的ability到达OnCreate生命周期,并返回ability实例(callback形式) 设置等待时间,等待与AbilityMonitor实例匹配的ability到达OnCreate生命周期,并返回ability实例(callback形式)
...@@ -229,7 +225,7 @@ waitAbilityMonitor(monitor: AbilityMonitor, timeout: number, callback: AsyncCall ...@@ -229,7 +225,7 @@ waitAbilityMonitor(monitor: AbilityMonitor, timeout: number, callback: AsyncCall
| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | | -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
| monitor | [AbilityMonitor](js-apis-application-abilityMonitor.md#AbilityMonitor) | 是 | [AbilityMonitor](js-apis-application-abilityMonitor.md#AbilityMonitor)实例 | | monitor | [AbilityMonitor](js-apis-application-abilityMonitor.md#AbilityMonitor) | 是 | [AbilityMonitor](js-apis-application-abilityMonitor.md#AbilityMonitor)实例 |
| timeout | number | 是 | 最大等待时间,单位毫秒(ms) | | timeout | number | 是 | 最大等待时间,单位毫秒(ms) |
| callback | AsyncCallback\<[Ability](js-apis-application-ability.md#Ability)> | 是 | 表示指定的回调方法 | | callback | AsyncCallback\<[UIAbility](js-apis-application-ability.md#Ability)> | 是 | 表示指定的回调方法 |
**示例:** **示例:**
...@@ -256,7 +252,7 @@ abilityDelegator.waitAbilityMonitor(monitor, timeout, (err : any, data : any) => ...@@ -256,7 +252,7 @@ abilityDelegator.waitAbilityMonitor(monitor, timeout, (err : any, data : any) =>
### waitAbilityMonitor<sup>9+</sup> ### waitAbilityMonitor<sup>9+</sup>
waitAbilityMonitor(monitor: AbilityMonitor, timeout?: number): Promise\<Ability> waitAbilityMonitor(monitor: AbilityMonitor, timeout?: number): Promise\<UIAbility>;
设置等待时间,等待与AbilityMonitor实例匹配的ability到达OnCreate生命周期,并返回ability实例(promise形式) 设置等待时间,等待与AbilityMonitor实例匹配的ability到达OnCreate生命周期,并返回ability实例(promise形式)
...@@ -273,7 +269,7 @@ waitAbilityMonitor(monitor: AbilityMonitor, timeout?: number): Promise\<Ability> ...@@ -273,7 +269,7 @@ waitAbilityMonitor(monitor: AbilityMonitor, timeout?: number): Promise\<Ability>
| 类型 | 说明 | | 类型 | 说明 |
| ----------------------------------------------------------- | -------------------------- | | ----------------------------------------------------------- | -------------------------- |
| Promise\<[Ability](js-apis-application-ability.md#Ability)> | 以Promise形式返回Ability。 | | Promise\<[UIAbility](js-apis-application-ability.md#Ability)> | 以Promise形式返回Ability。 |
**示例:** **示例:**
...@@ -299,7 +295,7 @@ abilityDelegator.waitAbilityMonitor(monitor).then((data : any) => { ...@@ -299,7 +295,7 @@ abilityDelegator.waitAbilityMonitor(monitor).then((data : any) => {
### getAppContext<sup>9+</sup> ### getAppContext<sup>9+</sup>
getAppContext(): Context getAppContext(): Context;
获取应用Context 获取应用Context
...@@ -324,7 +320,7 @@ var context = abilityDelegator.getAppContext(); ...@@ -324,7 +320,7 @@ var context = abilityDelegator.getAppContext();
### getAbilityState<sup>9+</sup> ### getAbilityState<sup>9+</sup>
getAbilityState(ability: Ability): number getAbilityState(ability: UIAbility): number;
获取指定ability的生命周期状态 获取指定ability的生命周期状态
...@@ -334,7 +330,7 @@ getAbilityState(ability: Ability): number ...@@ -334,7 +330,7 @@ getAbilityState(ability: Ability): number
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| ------- | ------------------------------------------------- | ---- | --------------- | | ------- | ------------------------------------------------- | ---- | --------------- |
| ability | [Ability](js-apis-application-ability.md#Ability) | 是 | 指定Ability对象 | | ability | [UIAbility](js-apis-application-ability.md#Ability) | 是 | 指定Ability对象 |
**返回值:** **返回值:**
...@@ -361,7 +357,7 @@ abilityDelegator.getCurrentTopAbility((err : any, data : any) => { ...@@ -361,7 +357,7 @@ abilityDelegator.getCurrentTopAbility((err : any, data : any) => {
### getCurrentTopAbility<sup>9+</sup> ### getCurrentTopAbility<sup>9+</sup>
getCurrentTopAbility(callback: AsyncCallback\<Ability>): void getCurrentTopAbility(callback: AsyncCallback\<UIAbility>): void;
获取当前应用顶部ability(callback形式) 获取当前应用顶部ability(callback形式)
...@@ -371,7 +367,7 @@ getCurrentTopAbility(callback: AsyncCallback\<Ability>): void ...@@ -371,7 +367,7 @@ getCurrentTopAbility(callback: AsyncCallback\<Ability>): void
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------------------------------ | ---- | ------------------ | | -------- | ------------------------------------------------------------ | ---- | ------------------ |
| callback | AsyncCallback\<[Ability](js-apis-application-ability.md#Ability)> | 是 | 表示指定的回调方法 | | callback | AsyncCallback\<[UIAbility](js-apis-application-ability.md#Ability)> | 是 | 表示指定的回调方法 |
**示例:** **示例:**
...@@ -390,7 +386,7 @@ abilityDelegator.getCurrentTopAbility((err : any, data : any) => { ...@@ -390,7 +386,7 @@ abilityDelegator.getCurrentTopAbility((err : any, data : any) => {
### getCurrentTopAbility<sup>9+</sup> ### getCurrentTopAbility<sup>9+</sup>
getCurrentTopAbility(): Promise\<Ability> getCurrentTopAbility(): Promise\<UIAbility>;
获取当前应用顶部ability(promise形式) 获取当前应用顶部ability(promise形式)
...@@ -400,7 +396,7 @@ getCurrentTopAbility(): Promise\<Ability> ...@@ -400,7 +396,7 @@ getCurrentTopAbility(): Promise\<Ability>
| 类型 | 说明 | | 类型 | 说明 |
| ----------------------------------------------------------- | -------------------------------------- | | ----------------------------------------------------------- | -------------------------------------- |
| Promise\<[Ability](js-apis-application-ability.md#Ability)> | 以Promise形式返回当前应用顶部ability。 | | Promise\<[UIAbility](js-apis-application-ability.md#Ability)> | 以Promise形式返回当前应用顶部ability。 |
**示例:** **示例:**
...@@ -419,7 +415,7 @@ abilityDelegator.getCurrentTopAbility().then((data : any) => { ...@@ -419,7 +415,7 @@ abilityDelegator.getCurrentTopAbility().then((data : any) => {
### startAbility<sup>9+</sup> ### startAbility<sup>9+</sup>
startAbility(want: Want, callback: AsyncCallback\<void>): void startAbility(want: Want, callback: AsyncCallback\<void>): void;
启动指定ability(callback形式) 启动指定ability(callback形式)
...@@ -451,7 +447,7 @@ abilityDelegator.startAbility(want, (err : any, data : any) => { ...@@ -451,7 +447,7 @@ abilityDelegator.startAbility(want, (err : any, data : any) => {
### startAbility<sup>9+</sup> ### startAbility<sup>9+</sup>
startAbility(want: Want): Promise\<void> startAbility(want: Want): Promise\<void>;
启动指定ability(promise形式) 启动指定ability(promise形式)
...@@ -488,7 +484,7 @@ abilityDelegator.startAbility(want).then((data: any) => { ...@@ -488,7 +484,7 @@ abilityDelegator.startAbility(want).then((data: any) => {
### doAbilityForeground<sup>9+</sup> ### doAbilityForeground<sup>9+</sup>
doAbilityForeground(ability: Ability, callback: AsyncCallback\<boolean>): void doAbilityForeground(ability: UIAbility, callback: AsyncCallback\<void>): void;
调度指定ability生命周期状态到Foreground状态(callback形式) 调度指定ability生命周期状态到Foreground状态(callback形式)
...@@ -498,8 +494,8 @@ doAbilityForeground(ability: Ability, callback: AsyncCallback\<boolean>): void ...@@ -498,8 +494,8 @@ doAbilityForeground(ability: Ability, callback: AsyncCallback\<boolean>): void
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | ------------------------------------------------------- | | -------- | ----------------------- | ---- | ------------------------------------------------------- |
| ability | Ability | 是 | 指定Ability对象 | | ability | UIAbility | 是 | 指定Ability对象 |
| callback | AsyncCallback\<boolean> | 是 | 表示指定的回调方法<br/>\- true:成功<br/>\- false:失败 | | callback | AsyncCallback\<void> | 是 | 表示指定的回调方法<br/>\- true:成功<br/>\- false:失败 |
**示例:** **示例:**
...@@ -521,7 +517,7 @@ abilityDelegator.getCurrentTopAbility((err : any, data : any) => { ...@@ -521,7 +517,7 @@ abilityDelegator.getCurrentTopAbility((err : any, data : any) => {
### doAbilityForeground<sup>9+</sup> ### doAbilityForeground<sup>9+</sup>
doAbilityForeground(ability: Ability): Promise\<boolean> doAbilityForeground(ability: UIAbility): Promise\<void>;
调度指定ability生命周期状态到Foreground状态(promise形式) 调度指定ability生命周期状态到Foreground状态(promise形式)
...@@ -531,7 +527,7 @@ doAbilityForeground(ability: Ability): Promise\<boolean> ...@@ -531,7 +527,7 @@ doAbilityForeground(ability: Ability): Promise\<boolean>
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| ------- | ------- | ---- | --------------- | | ------- | ------- | ---- | --------------- |
| ability | Ability | 是 | 指定Ability对象 | | ability | UIAbility | 是 | 指定Ability对象 |
**返回值:** **返回值:**
...@@ -559,7 +555,7 @@ abilityDelegator.getCurrentTopAbility((err : any, data : any) => { ...@@ -559,7 +555,7 @@ abilityDelegator.getCurrentTopAbility((err : any, data : any) => {
### doAbilityBackground<sup>9+</sup> ### doAbilityBackground<sup>9+</sup>
doAbilityBackground(ability: Ability, callback: AsyncCallback\<boolean>): void doAbilityBackground(ability: UIAbility, callback: AsyncCallback\<void>): void;
调度指定ability生命周期状态到Background状态(callback形式) 调度指定ability生命周期状态到Background状态(callback形式)
...@@ -569,8 +565,8 @@ doAbilityBackground(ability: Ability, callback: AsyncCallback\<boolean>): void ...@@ -569,8 +565,8 @@ doAbilityBackground(ability: Ability, callback: AsyncCallback\<boolean>): void
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | ------------------------------------------------------- | | -------- | ----------------------- | ---- | ------------------------------------------------------- |
| ability | Ability | 是 | 指定Ability对象 | | ability | UIAbility | 是 | 指定Ability对象 |
| callback | AsyncCallback\<boolean> | 是 | 表示指定的回调方法<br/>\- true:成功<br/>\- false:失败 | | callback | AsyncCallback\<void> | 是 | 表示指定的回调方法<br/>\- true:成功<br/>\- false:失败 |
**示例:** **示例:**
...@@ -592,7 +588,7 @@ abilityDelegator.getCurrentTopAbility((err : any, data : any) => { ...@@ -592,7 +588,7 @@ abilityDelegator.getCurrentTopAbility((err : any, data : any) => {
### doAbilityBackground<sup>9+</sup> ### doAbilityBackground<sup>9+</sup>
doAbilityBackground(ability: Ability): Promise\<boolean> doAbilityBackground(ability: UIAbility): Promise\<void>;
调度指定ability生命周期状态到Background状态(promise形式) 调度指定ability生命周期状态到Background状态(promise形式)
...@@ -602,7 +598,7 @@ doAbilityBackground(ability: Ability): Promise\<boolean> ...@@ -602,7 +598,7 @@ doAbilityBackground(ability: Ability): Promise\<boolean>
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| ------- | ------- | ---- | --------------- | | ------- | ------- | ---- | --------------- |
| ability | Ability | 是 | 指定Ability对象 | | ability | UIAbility | 是 | 指定Ability对象 |
**返回值:** **返回值:**
...@@ -630,7 +626,7 @@ abilityDelegator.getCurrentTopAbility((err : any, data : any) => { ...@@ -630,7 +626,7 @@ abilityDelegator.getCurrentTopAbility((err : any, data : any) => {
### printSync<sup>9+</sup> ### printSync<sup>9+</sup>
printSync(msg: string): void printSync(msg: string): void;
打印日志信息到单元测试终端控制台 打印日志信息到单元测试终端控制台
...@@ -656,7 +652,7 @@ abilityDelegator.printSync(msg); ...@@ -656,7 +652,7 @@ abilityDelegator.printSync(msg);
### print ### print
print(msg: string, callback: AsyncCallback\<void>): void print(msg: string, callback: AsyncCallback\<void>): void;
打印日志信息到单元测试终端控制台(callback形式) 打印日志信息到单元测试终端控制台(callback形式)
...@@ -685,7 +681,7 @@ abilityDelegator.print(msg, (err : any) => { ...@@ -685,7 +681,7 @@ abilityDelegator.print(msg, (err : any) => {
### print ### print
print(msg: string): Promise\<void> print(msg: string): Promise\<void>;
打印日志信息到单元测试终端控制台(promise形式) 打印日志信息到单元测试终端控制台(promise形式)
...@@ -719,7 +715,7 @@ abilityDelegator.print(msg).then(() => { ...@@ -719,7 +715,7 @@ abilityDelegator.print(msg).then(() => {
### executeShellCommand ### executeShellCommand
executeShellCommand(cmd: string, callback: AsyncCallback\<ShellCmdResult>): void executeShellCommand(cmd: string, callback: AsyncCallback\<ShellCmdResult>): void;
执行指定的shell命令(callback形式) 执行指定的shell命令(callback形式)
...@@ -748,7 +744,7 @@ abilityDelegator.executeShellCommand(cmd, (err : any, data : any) => { ...@@ -748,7 +744,7 @@ abilityDelegator.executeShellCommand(cmd, (err : any, data : any) => {
### executeShellCommand ### executeShellCommand
executeShellCommand(cmd: string, timeoutSecs: number, callback: AsyncCallback\<ShellCmdResult>): void executeShellCommand(cmd: string, timeoutSecs: number, callback: AsyncCallback\<ShellCmdResult>): void;
指定超时时间,并执行指定的shell命令(callback形式) 指定超时时间,并执行指定的shell命令(callback形式)
...@@ -779,7 +775,7 @@ abilityDelegator.executeShellCommand(cmd, timeout, (err : any, data : any) => { ...@@ -779,7 +775,7 @@ abilityDelegator.executeShellCommand(cmd, timeout, (err : any, data : any) => {
### executeShellCommand ### executeShellCommand
executeShellCommand(cmd: string, timeoutSecs?: number): Promise\<ShellCmdResult> executeShellCommand(cmd: string, timeoutSecs?: number): Promise\<ShellCmdResult>;
指定超时时间,并执行指定的shell命令(promise形式) 指定超时时间,并执行指定的shell命令(promise形式)
...@@ -815,7 +811,7 @@ abilityDelegator.executeShellCommand(cmd, timeout).then((data : any) => { ...@@ -815,7 +811,7 @@ abilityDelegator.executeShellCommand(cmd, timeout).then((data : any) => {
### finishTest<sup>9+</sup> ### finishTest<sup>9+</sup>
finishTest(msg: string, code: number, callback: AsyncCallback\<void>): void finishTest(msg: string, code: number, callback: AsyncCallback\<void>): void;
结束测试并打印日志信息到单元测试终端控制台(callback形式) 结束测试并打印日志信息到单元测试终端控制台(callback形式)
...@@ -845,7 +841,7 @@ abilityDelegator.finishTest(msg, 0, (err : any) => { ...@@ -845,7 +841,7 @@ abilityDelegator.finishTest(msg, 0, (err : any) => {
### finishTest<sup>9+</sup> ### finishTest<sup>9+</sup>
finishTest(msg: string, code: number): Promise\<void> finishTest(msg: string, code: number): Promise\<void>;
结束测试并打印日志信息到单元测试终端控制台(promise形式) 结束测试并打印日志信息到单元测试终端控制台(promise形式)
...@@ -886,7 +882,7 @@ addAbilityStageMonitor(monitor: AbilityStageMonitor, callback: AsyncCallback\<vo ...@@ -886,7 +882,7 @@ addAbilityStageMonitor(monitor: AbilityStageMonitor, callback: AsyncCallback\<vo
**参数:** **参数:**
| 参数名 | 类型 | 必填说明 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------------------------------ | -------- | ------------------------------------------------------------ | | -------- | ------------------------------------------------------------ | -------- | ------------------------------------------------------------ |
| monitor | [AbilityStageMonitor](#abilitystagemonitor) | 是 | [AbilityStageMonitor](#abilitystagemonitor) 实例 | | monitor | [AbilityStageMonitor](#abilitystagemonitor) | 是 | [AbilityStageMonitor](#abilitystagemonitor) 实例 |
| callback | AsyncCallback\<void> | 是 | 表示指定的回调方法 | | callback | AsyncCallback\<void> | 是 | 表示指定的回调方法 |
...@@ -955,7 +951,7 @@ removeAbilityStageMonitor(monitor: AbilityStageMonitor, callback: AsyncCallback\ ...@@ -955,7 +951,7 @@ removeAbilityStageMonitor(monitor: AbilityStageMonitor, callback: AsyncCallback\
**参数:** **参数:**
| 参数名 | 类型 | 必填说明 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------------------------------ | -------- | ------------------------------------------------------------ | | -------- | ------------------------------------------------------------ | -------- | ------------------------------------------------------------ |
| monitor | [AbilityStageMonitor](#abilitystagemonitor) | 是 | [AbilityStageMonitor](#abilitystagemonitor) 实例 | | monitor | [AbilityStageMonitor](#abilitystagemonitor) | 是 | [AbilityStageMonitor](#abilitystagemonitor) 实例 |
| callback | AsyncCallback\<void> | 是 | 表示指定的回调方法 | | callback | AsyncCallback\<void> | 是 | 表示指定的回调方法 |
...@@ -1024,7 +1020,7 @@ waitAbilityStageMonitor(monitor: AbilityStageMonitor, callback: AsyncCallback\<A ...@@ -1024,7 +1020,7 @@ waitAbilityStageMonitor(monitor: AbilityStageMonitor, callback: AsyncCallback\<A
**参数:** **参数:**
| 参数名 | 类型 | 必填说明 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------------------------------ | -------- | ------------------------------------------------------------ | | -------- | ------------------------------------------------------------ | -------- | ------------------------------------------------------------ |
| monitor | [AbilityStageMonitor](#abilitystagemonitor) | 是 | [AbilityStageMonitor](#abilitystagemonitor) 实例 | | monitor | [AbilityStageMonitor](#abilitystagemonitor) | 是 | [AbilityStageMonitor](#abilitystagemonitor) 实例 |
| callback | AsyncCallback\<AbilityStage> | 是 | 成功返回AbilityStage对象,失败返回空。 | | callback | AsyncCallback\<AbilityStage> | 是 | 成功返回AbilityStage对象,失败返回空。 |
...@@ -1062,7 +1058,7 @@ waitAbilityStageMonitor(monitor: AbilityStageMonitor, timeout?: number): Promise ...@@ -1062,7 +1058,7 @@ waitAbilityStageMonitor(monitor: AbilityStageMonitor, timeout?: number): Promise
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| ------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | | ------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
| monitor | [AbilityStageMonitor](#abilitystagemonitor) | 是 | [AbilityStageMonitor](#abilitystagemonitor) 实例 | | monitor | [AbilityStageMonitor](#abilitystagemonitor) | 是 | [AbilityStageMonitor](#abilitystagemonitor) 实例 |
| timeout | number | | 超时最大等待时间,以毫秒为单位。 | | timeout | number | | 超时最大等待时间,以毫秒为单位。 |
**返回值:** **返回值:**
......
...@@ -156,16 +156,18 @@ onAbilityContinue(ability: Ability): void; ...@@ -156,16 +156,18 @@ onAbilityContinue(ability: Ability): void;
**示例:** **示例:**
```js ```js
import Ability from "@ohos.application.Ability"; import AbilityStage from "@ohos.application.AbilityStage";
export default class MyAbility extends Ability { var lifecycleid;
onCreate() {
console.log("MyAbility onCreate") export default class MyAbilityStage extends AbilityStage {
let AbilityLifecycleCallback = { onCreate() {
onAbilityCreate(ability){ console.log("MyAbilityStage onCreate")
console.log("AbilityLifecycleCallback onAbilityCreate ability:" + JSON.stringify(ability)); let AbilityLifecycleCallback = {
}, onAbilityCreate(ability){
console.log("AbilityLifecycleCallback onAbilityCreate ability:" + JSON.stringify(ability));
},
onWindowStageCreate(ability, windowStage){ onWindowStageCreate(ability, windowStage){
console.log("AbilityLifecycleCallback onWindowStageCreate ability:" + JSON.stringify(ability)); console.log("AbilityLifecycleCallback onWindowStageCreate ability:" + JSON.stringify(ability));
console.log("AbilityLifecycleCallback onWindowStageCreate windowStage:" + JSON.stringify(windowStage)); console.log("AbilityLifecycleCallback onWindowStageCreate windowStage:" + JSON.stringify(windowStage));
...@@ -182,30 +184,30 @@ onAbilityContinue(ability: Ability): void; ...@@ -182,30 +184,30 @@ onAbilityContinue(ability: Ability): void;
console.log("AbilityLifecycleCallback onWindowStageDestroy ability:" + JSON.stringify(ability)); console.log("AbilityLifecycleCallback onWindowStageDestroy ability:" + JSON.stringify(ability));
console.log("AbilityLifecycleCallback onWindowStageDestroy windowStage:" + JSON.stringify(windowStage)); console.log("AbilityLifecycleCallback onWindowStageDestroy windowStage:" + JSON.stringify(windowStage));
}, },
onAbilityDestroy(ability){ onAbilityDestroy(ability){
console.log("AbilityLifecycleCallback onAbilityDestroy ability:" + JSON.stringify(ability)); console.log("AbilityLifecycleCallback onAbilityDestroy ability:" + JSON.stringify(ability));
}, },
onAbilityForeground(ability){ onAbilityForeground(ability){
console.log("AbilityLifecycleCallback onAbilityForeground ability:" + JSON.stringify(ability)); console.log("AbilityLifecycleCallback onAbilityForeground ability:" + JSON.stringify(ability));
}, },
onAbilityBackground(ability){ onAbilityBackground(ability){
console.log("AbilityLifecycleCallback onAbilityBackground ability:" + JSON.stringify(ability)); console.log("AbilityLifecycleCallback onAbilityBackground ability:" + JSON.stringify(ability));
}, },
onAbilityContinue(ability){ onAbilityContinue(ability){
console.log("AbilityLifecycleCallback onAbilityContinue ability:" + JSON.stringify(ability)); console.log("AbilityLifecycleCallback onAbilityContinue ability:" + JSON.stringify(ability));
} }
} }
// 1.通过context属性获取applicationContext // 1.通过context属性获取applicationContext
let applicationContext = this.context.getApplicationContext(); let applicationContext = this.context.getApplicationContext();
// 2.通过applicationContext注册监听应用内生命周期 // 2.通过applicationContext注册监听应用内生命周期
let lifecycleid = applicationContext.registerAbilityLifecycleCallback(AbilityLifecycleCallback); lifecycleid = applicationContext.registerAbilityLifecycleCallback(AbilityLifecycleCallback);
console.log("registerAbilityLifecycleCallback number: " + JSON.stringify(lifecycleid)); console.log("registerAbilityLifecycleCallback number: " + JSON.stringify(lifecycleid));
}, }
onDestroy() { onDestroy() {
let applicationContext = this.context.getApplicationContext(); let applicationContext = this.context.getApplicationContext();
applicationContext.unregisterAbilityLifecycleCallback(lifecycleid, (error, data) => { applicationContext.unregisterAbilityLifecycleCallback(lifecycleid, (error, data) => {
console.log("unregisterAbilityLifecycleCallback success, err: " + JSON.stringify(error)); console.log("unregisterAbilityLifecycleCallback success, err: " + JSON.stringify(error));
}); });
} }
} }
``` ```
\ No newline at end of file \ No newline at end of file
...@@ -15,7 +15,6 @@ ApplicationContext模块提供开发者应用级别的的上下文的能力, ...@@ -15,7 +15,6 @@ ApplicationContext模块提供开发者应用级别的的上下文的能力,
let applicationContext = this.context.getApplicationContext(); let applicationContext = this.context.getApplicationContext();
``` ```
## ApplicationContext.registerAbilityLifecycleCallback ## ApplicationContext.registerAbilityLifecycleCallback
registerAbilityLifecycleCallback(callback: AbilityLifecycleCallback): **number**; registerAbilityLifecycleCallback(callback: AbilityLifecycleCallback): **number**;
...@@ -38,7 +37,7 @@ registerAbilityLifecycleCallback(callback: AbilityLifecycleCallback): **number** ...@@ -38,7 +37,7 @@ registerAbilityLifecycleCallback(callback: AbilityLifecycleCallback): **number**
**示例:** **示例:**
```js ```js
import Ability from "@ohos.application.Ability"; import Ability from "@ohos.application.Ability";
var lifecycleId; var lifecycleId;
...@@ -46,36 +45,36 @@ var lifecycleId; ...@@ -46,36 +45,36 @@ var lifecycleId;
export default class MyAbility extends Ability { export default class MyAbility extends Ability {
onCreate() { onCreate() {
console.log("MyAbility onCreate") console.log("MyAbility onCreate")
let AbilityLifecycleCallback = { let AbilityLifecycleCallback = {
onAbilityCreate(ability){ onAbilityCreate(ability) {
console.log("AbilityLifecycleCallback onAbilityCreate ability:" + JSON.stringify(ability)); console.log("AbilityLifecycleCallback onAbilityCreate ability:" + JSON.stringify(ability));
}, },
onWindowStageCreate(ability, windowStage){ onWindowStageCreate(ability, windowStage) {
console.log("AbilityLifecycleCallback onWindowStageCreate ability:" + JSON.stringify(ability)); console.log("AbilityLifecycleCallback onWindowStageCreate ability:" + JSON.stringify(ability));
console.log("AbilityLifecycleCallback onWindowStageCreate windowStage:" + JSON.stringify(windowStage)); console.log("AbilityLifecycleCallback onWindowStageCreate windowStage:" + JSON.stringify(windowStage));
}, },
onWindowStageActive(ability, windowStage){ onWindowStageActive(ability, windowStage) {
console.log("AbilityLifecycleCallback onWindowStageActive ability:" + JSON.stringify(ability)); console.log("AbilityLifecycleCallback onWindowStageActive ability:" + JSON.stringify(ability));
console.log("AbilityLifecycleCallback onWindowStageActive windowStage:" + JSON.stringify(windowStage)); console.log("AbilityLifecycleCallback onWindowStageActive windowStage:" + JSON.stringify(windowStage));
}, },
onWindowStageInactive(ability, windowStage){ onWindowStageInactive(ability, windowStage) {
console.log("AbilityLifecycleCallback onWindowStageInactive ability:" + JSON.stringify(ability)); console.log("AbilityLifecycleCallback onWindowStageInactive ability:" + JSON.stringify(ability));
console.log("AbilityLifecycleCallback onWindowStageInactive windowStage:" + JSON.stringify(windowStage)); console.log("AbilityLifecycleCallback onWindowStageInactive windowStage:" + JSON.stringify(windowStage));
}, },
onWindowStageDestroy(ability, windowStage){ onWindowStageDestroy(ability, windowStage) {
console.log("AbilityLifecycleCallback onWindowStageDestroy ability:" + JSON.stringify(ability)); console.log("AbilityLifecycleCallback onWindowStageDestroy ability:" + JSON.stringify(ability));
console.log("AbilityLifecycleCallback onWindowStageDestroy windowStage:" + JSON.stringify(windowStage)); console.log("AbilityLifecycleCallback onWindowStageDestroy windowStage:" + JSON.stringify(windowStage));
}, },
onAbilityDestroy(ability){ onAbilityDestroy(ability) {
console.log("AbilityLifecycleCallback onAbilityDestroy ability:" + JSON.stringify(ability)); console.log("AbilityLifecycleCallback onAbilityDestroy ability:" + JSON.stringify(ability));
}, },
onAbilityForeground(ability){ onAbilityForeground(ability) {
console.log("AbilityLifecycleCallback onAbilityForeground ability:" + JSON.stringify(ability)); console.log("AbilityLifecycleCallback onAbilityForeground ability:" + JSON.stringify(ability));
}, },
onAbilityBackground(ability){ onAbilityBackground(ability) {
console.log("AbilityLifecycleCallback onAbilityBackground ability:" + JSON.stringify(ability)); console.log("AbilityLifecycleCallback onAbilityBackground ability:" + JSON.stringify(ability));
}, },
onAbilityContinue(ability){ onAbilityContinue(ability) {
console.log("AbilityLifecycleCallback onAbilityContinue ability:" + JSON.stringify(ability)); console.log("AbilityLifecycleCallback onAbilityContinue ability:" + JSON.stringify(ability));
} }
} }
...@@ -84,16 +83,9 @@ export default class MyAbility extends Ability { ...@@ -84,16 +83,9 @@ export default class MyAbility extends Ability {
// 2.通过applicationContext注册监听应用内生命周期 // 2.通过applicationContext注册监听应用内生命周期
lifecycleId = applicationContext.registerAbilityLifecycleCallback(AbilityLifecycleCallback); lifecycleId = applicationContext.registerAbilityLifecycleCallback(AbilityLifecycleCallback);
console.log("registerAbilityLifecycleCallback number: " + JSON.stringify(lifecycleId)); console.log("registerAbilityLifecycleCallback number: " + JSON.stringify(lifecycleId));
},
onDestroy() {
let applicationContext = this.context.getApplicationContext();
applicationContext.unregisterAbilityLifecycleCallback(lifecycleId, (error, data) => {
console.log("unregisterAbilityLifecycleCallback success, err: " + JSON.stringify(error));
});
} }
} }
``` ```
## ApplicationContext.unregisterAbilityLifecycleCallback ## ApplicationContext.unregisterAbilityLifecycleCallback
...@@ -112,14 +104,21 @@ unregisterAbilityLifecycleCallback(callbackId: **number**, callback: AsyncCallb ...@@ -112,14 +104,21 @@ unregisterAbilityLifecycleCallback(callbackId: **number**, callback: AsyncCallb
**示例:** **示例:**
```js ```js
let applicationContext = this.context.getApplicationContext(); import Ability from "@ohos.application.Ability";
let lifecycleId = 1;
console.log("stage applicationContext: " + JSON.stringify(applicationContext)); var lifecycleId;
applicationContext.unregisterAbilityLifecycleCallback(lifecycleId, (error, data) => {
console.log("unregisterAbilityLifecycleCallback success, err: " + JSON.stringify(error)); export default class MyAbility extends Ability {
}); onDestroy() {
``` let applicationContext = this.context.getApplicationContext();
console.log("stage applicationContext: " + JSON.stringify(applicationContext));
applicationContext.unregisterAbilityLifecycleCallback(lifecycleId, (error, data) => {
console.log("unregisterAbilityLifecycleCallback success, err: " + JSON.stringify(error));
});
}
}
```
## ApplicationContext.registerEnvironmentCallback ## ApplicationContext.registerEnvironmentCallback
...@@ -143,7 +142,7 @@ registerEnvironmentCallback(callback: EnvironmentCallback): **number**; ...@@ -143,7 +142,7 @@ registerEnvironmentCallback(callback: EnvironmentCallback): **number**;
**示例:** **示例:**
```js ```js
import Ability from "@ohos.application.Ability"; import Ability from "@ohos.application.Ability";
var callbackId; var callbackId;
...@@ -163,14 +162,8 @@ export default class MyAbility extends Ability { ...@@ -163,14 +162,8 @@ export default class MyAbility extends Ability {
callbackId = applicationContext.registerEnvironmentCallback(EnvironmentCallback); callbackId = applicationContext.registerEnvironmentCallback(EnvironmentCallback);
console.log("registerEnvironmentCallback number: " + JSON.stringify(callbackId)); console.log("registerEnvironmentCallback number: " + JSON.stringify(callbackId));
} }
onDestroy() {
let applicationContext = globalThis.applicationContext;
applicationContext.unregisterEnvironmentCallback(callbackId, (error, data) => {
console.log("unregisterEnvironmentCallback success, err: " + JSON.stringify(error));
});
}
} }
``` ```
## ApplicationContext.unregisterEnvironmentCallback ## ApplicationContext.unregisterEnvironmentCallback
...@@ -189,10 +182,17 @@ unregisterEnvironmentCallback(callbackId: **number**, callback: AsyncCallback<* ...@@ -189,10 +182,17 @@ unregisterEnvironmentCallback(callbackId: **number**, callback: AsyncCallback<*
**示例:** **示例:**
```js ```js
let applicationContext = this.context.getApplicationContext(); import Ability from "@ohos.application.Ability";
let callbackId = 1;
applicationContext.unregisterEnvironmentCallback(callbackId, (error, data) => { var callbackId;
console.log("unregisterEnvironmentCallback success, err: " + JSON.stringify(error));
}); export default class MyAbility extends Ability {
``` onDestroy() {
let applicationContext = this.context.getApplicationContext();
applicationContext.unregisterEnvironmentCallback(callbackId, (error, data) => {
console.log("unregisterEnvironmentCallback success, err: " + JSON.stringify(error));
});
}
}
```
...@@ -67,17 +67,10 @@ createBundleContext(bundleName: string): Context; ...@@ -67,17 +67,10 @@ createBundleContext(bundleName: string): Context;
**示例:** **示例:**
```js ```js
import Ability from '@ohos.application.Ability' let test = "com.example.test";
let context = this.context.createBundleContext(test);
class MainAbility extends Ability {
onWindowStageCreate(windowStage) {
let test = "com.example.test";
let context = this.context.createBundleContext(test);
}
}
``` ```
## Context.createModuleContext ## Context.createModuleContext
createModuleContext(moduleName: string): Context; createModuleContext(moduleName: string): Context;
...@@ -101,17 +94,10 @@ createModuleContext(moduleName: string): Context; ...@@ -101,17 +94,10 @@ createModuleContext(moduleName: string): Context;
**示例:** **示例:**
```js ```js
import Ability from '@ohos.application.Ability' let moduleName = "module";
let context = this.context.createModuleContext(moduleName);
class MainAbility extends Ability {
onWindowStageCreate(windowStage) {
let moduleName = "module";
let context = this.context.createModuleContext(moduleName);
}
}
``` ```
## Context.createModuleContext ## Context.createModuleContext
createModuleContext(bundleName: string, moduleName: string): Context; createModuleContext(bundleName: string, moduleName: string): Context;
...@@ -138,15 +124,9 @@ createModuleContext(bundleName: string, moduleName: string): Context; ...@@ -138,15 +124,9 @@ createModuleContext(bundleName: string, moduleName: string): Context;
**示例:** **示例:**
```js ```js
import Ability from '@ohos.application.Ability' let bundleName = "com.example.bundle";
let moduleName = "module";
class MainAbility extends Ability { let context = this.context.createModuleContext(bundleName, moduleName);
onWindowStageCreate(windowStage) {
let bundleName = "com.example.bundle";
let moduleName = "module";
let context = this.context.createModuleContext(bundleName, moduleName);
}
}
``` ```
## Context.getApplicationContext ## Context.getApplicationContext
...@@ -166,16 +146,9 @@ getApplicationContext(): ApplicationContext; ...@@ -166,16 +146,9 @@ getApplicationContext(): ApplicationContext;
**示例:** **示例:**
```js ```js
import Ability from '@ohos.application.Ability' let applicationContext = this.context.getApplicationContext();
class MainAbility extends Ability {
onWindowStageCreate(windowStage) {
let applicationContext = this.context.getApplicationContext();
}
}
``` ```
## AreaMode ## AreaMode
访问的文件分区,每个文件分区有对应自己的内容。 访问的文件分区,每个文件分区有对应自己的内容。
......
...@@ -9,7 +9,7 @@ quickFixManager模块提供快速修复的能力,快速修复是OpenHarmony提 ...@@ -9,7 +9,7 @@ quickFixManager模块提供快速修复的能力,快速修复是OpenHarmony提
## 导入模块 ## 导入模块
``` ```
import quickFixManager from '@ohos.application.quickFixManager'; import quickFixManager from '@ohos.app.ability.quickFixManager';
``` ```
## HapModuleQuickFixInfo ## HapModuleQuickFixInfo
...@@ -65,7 +65,7 @@ applyQuickFix(hapModuleQuickFixFiles: Array\<string>, callback: AsyncCallback\<v ...@@ -65,7 +65,7 @@ applyQuickFix(hapModuleQuickFixFiles: Array\<string>, callback: AsyncCallback\<v
**示例:** **示例:**
```js ```js
import quickFixManager from '@ohos.application.quickFixManager' import quickFixManager from '@ohos.app.ability.quickFixManager'
let hapModuleQuickFixFiles = ["/data/storage/el2/base/entry.hqf"] let hapModuleQuickFixFiles = ["/data/storage/el2/base/entry.hqf"]
quickFixManager.applyQuickFix(hapModuleQuickFixFiles, (error) => { quickFixManager.applyQuickFix(hapModuleQuickFixFiles, (error) => {
...@@ -104,7 +104,7 @@ applyQuickFix(hapModuleQuickFixFiles: Array\<string>): Promise\<void>; ...@@ -104,7 +104,7 @@ applyQuickFix(hapModuleQuickFixFiles: Array\<string>): Promise\<void>;
**示例:** **示例:**
```js ```js
import quickFixManager from '@ohos.application.quickFixManager' import quickFixManager from '@ohos.app.ability.quickFixManager'
let hapModuleQuickFixFiles = ["/data/storage/el2/base/entry.hqf"] let hapModuleQuickFixFiles = ["/data/storage/el2/base/entry.hqf"]
quickFixManager.applyQuickFix(hapModuleQuickFixFiles).then(() => { quickFixManager.applyQuickFix(hapModuleQuickFixFiles).then(() => {
...@@ -136,7 +136,7 @@ getApplicationQuickFixInfo(bundleName: string, callback: AsyncCallback\<Applicat ...@@ -136,7 +136,7 @@ getApplicationQuickFixInfo(bundleName: string, callback: AsyncCallback\<Applicat
**示例:** **示例:**
```js ```js
import quickFixManager from '@ohos.application.quickFixManager' import quickFixManager from '@ohos.app.ability.quickFixManager'
let bundleName = "bundleName" let bundleName = "bundleName"
quickFixManager.getApplicationQuickFixInfo(bundleName, (error, data) => { quickFixManager.getApplicationQuickFixInfo(bundleName, (error, data) => {
...@@ -175,7 +175,7 @@ getApplicationQuickFixInfo(bundleName: string): Promise\<ApplicationQuickFixInfo ...@@ -175,7 +175,7 @@ getApplicationQuickFixInfo(bundleName: string): Promise\<ApplicationQuickFixInfo
**示例:** **示例:**
```js ```js
import quickFixManager from '@ohos.application.quickFixManager' import quickFixManager from '@ohos.app.ability.quickFixManager'
let bundleName = "bundleName" let bundleName = "bundleName"
quickFixManager.getApplicationQuickFixInfo(bundleName).then((data) => { quickFixManager.getApplicationQuickFixInfo(bundleName).then((data) => {
......
...@@ -487,7 +487,7 @@ async function createTonePlayerBefore(){ ...@@ -487,7 +487,7 @@ async function createTonePlayerBefore(){
## AudioSamplingRate<sup>8+</sup> ## AudioSamplingRate<sup>8+</sup>
枚举,音频采样率。 枚举,音频采样率,具体设备支持的采样率规格可能不同
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Core **系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Core
...@@ -706,7 +706,7 @@ async function createTonePlayerBefore(){ ...@@ -706,7 +706,7 @@ async function createTonePlayerBefore(){
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Device **系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Device
| 名称 | 类型 | 必填 | 说明 | | 名称 | 类型 | 必填 | 说明 |
| ---------- | ----------------------------------- | ---- | ---- | -------------------------------------------------------- | | ---------- | ----------------------------------- | ---- |-------------------------------------------------------- |
| mute | boolean | 是 | 回调返回系统麦克风静音状态,true为静音,false为非静音。 | | mute | boolean | 是 | 回调返回系统麦克风静音状态,true为静音,false为非静音。 |
## ConnectType<sup>9+</sup> ## ConnectType<sup>9+</sup>
...@@ -1920,7 +1920,7 @@ getCurrentAudioRendererInfoArray(callback: AsyncCallback&lt;AudioRendererChangeI ...@@ -1920,7 +1920,7 @@ getCurrentAudioRendererInfoArray(callback: AsyncCallback&lt;AudioRendererChangeI
**参数:** **参数:**
| 名称 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------------------- | -------- | --------------------------- | | -------- | ----------------------------------- | -------- | --------------------------- |
| callback | AsyncCallback<[AudioRendererChangeInfoArray](#audiorendererchangeinfoarray9)> | 是 | 回调函数,返回当前音频渲染器的信息。 | | callback | AsyncCallback<[AudioRendererChangeInfoArray](#audiorendererchangeinfoarray9)> | 是 | 回调函数,返回当前音频渲染器的信息。 |
...@@ -2014,7 +2014,7 @@ getCurrentAudioCapturerInfoArray(callback: AsyncCallback&lt;AudioCapturerChangeI ...@@ -2014,7 +2014,7 @@ getCurrentAudioCapturerInfoArray(callback: AsyncCallback&lt;AudioCapturerChangeI
**参数:** **参数:**
| 名称 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| ---------- | ----------------------------------- | --------- | -------------------------------------------------------- | | ---------- | ----------------------------------- | --------- | -------------------------------------------------------- |
| callback | AsyncCallback<[AudioCapturerChangeInfoArray](#audiocapturerchangeinfoarray9)> | 是 | 回调函数,返回当前音频采集器的信息。 | | callback | AsyncCallback<[AudioCapturerChangeInfoArray](#audiocapturerchangeinfoarray9)> | 是 | 回调函数,返回当前音频采集器的信息。 |
...@@ -2104,7 +2104,7 @@ on(type: "audioRendererChange", callback: Callback&lt;AudioRendererChangeInfoArr ...@@ -2104,7 +2104,7 @@ on(type: "audioRendererChange", callback: Callback&lt;AudioRendererChangeInfoArr
**参数:** **参数:**
| 名称 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ---------- | --------- | ------------------------------------------------------------------------ | | -------- | ---------- | --------- | ------------------------------------------------------------------------ |
| type | string | 是 | 事件类型,支持的事件`'audioRendererChange'`:当音频渲染器发生更改时触发。 | | type | string | 是 | 事件类型,支持的事件`'audioRendererChange'`:当音频渲染器发生更改时触发。 |
| callback | Callback<[AudioRendererChangeInfoArray](#audiorendererchangeinfoarray9)> | 是 | 回调函数。 | | callback | Callback<[AudioRendererChangeInfoArray](#audiorendererchangeinfoarray9)> | 是 | 回调函数。 |
...@@ -2154,7 +2154,7 @@ off(type: "audioRendererChange"): void ...@@ -2154,7 +2154,7 @@ off(type: "audioRendererChange"): void
**参数:** **参数:**
| 名称 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ------- | ---- | ---------------- | | -------- | ------- | ---- | ---------------- |
| type | string | 是 | 事件类型,支持的事件`'audioRendererChange'`:音频渲染器更改事件。 | | type | string | 是 | 事件类型,支持的事件`'audioRendererChange'`:音频渲染器更改事件。 |
...@@ -2183,7 +2183,7 @@ on(type: "audioCapturerChange", callback: Callback&lt;AudioCapturerChangeInfoArr ...@@ -2183,7 +2183,7 @@ on(type: "audioCapturerChange", callback: Callback&lt;AudioCapturerChangeInfoArr
**参数:** **参数:**
| 名称 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ------- | --------- | ----------------------------------------------------------------------- | | -------- | ------- | --------- | ----------------------------------------------------------------------- |
| type | string | 是 | 事件类型,支持的事件`'audioCapturerChange'`:当音频采集器发生更改时触发。 | | type | string | 是 | 事件类型,支持的事件`'audioCapturerChange'`:当音频采集器发生更改时触发。 |
| callback | Callback<[AudioCapturerChangeInfoArray](#audiocapturerchangeinfoarray9)> | 是 | 回调函数。 | | callback | Callback<[AudioCapturerChangeInfoArray](#audiocapturerchangeinfoarray9)> | 是 | 回调函数。 |
...@@ -2232,7 +2232,7 @@ off(type: "audioCapturerChange"): void; ...@@ -2232,7 +2232,7 @@ off(type: "audioCapturerChange"): void;
**参数:** **参数:**
| 名称 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | --- | ------------------------------------------------------------- | | -------- | -------- | --- | ------------------------------------------------------------- |
| type | string |是 | 事件类型,支持的事件`'audioCapturerChange'`:音频采集器更改事件。 | | type | string |是 | 事件类型,支持的事件`'audioCapturerChange'`:音频采集器更改事件。 |
......
...@@ -34,7 +34,7 @@ requestSuspendDelay(reason: string, callback: Callback&lt;void&gt;): DelaySuspen ...@@ -34,7 +34,7 @@ requestSuspendDelay(reason: string, callback: Callback&lt;void&gt;): DelaySuspen
**参数** **参数**
| 参数名 | 类型 | 必填 | 说明 | | 名称 | 类型 | 必填 | 说明 |
| -------- | -------------------- | ---- | ------------------------------ | | -------- | -------------------- | ---- | ------------------------------ |
| reason | string | 是 | 延迟挂起申请的原因。 | | reason | string | 是 | 延迟挂起申请的原因。 |
| callback | Callback&lt;void&gt; | 是 | 延迟即将超时的回调函数,一般在超时前6秒通过此回调通知应用。 | | callback | Callback&lt;void&gt; | 是 | 延迟即将超时的回调函数,一般在超时前6秒通过此回调通知应用。 |
...@@ -72,7 +72,7 @@ getRemainingDelayTime(requestId: number, callback: AsyncCallback&lt;number&gt;): ...@@ -72,7 +72,7 @@ getRemainingDelayTime(requestId: number, callback: AsyncCallback&lt;number&gt;):
**参数** **参数**
| 参数名 | 类型 | 必填 | 说明 | | 名称 | 类型 | 必填 | 说明 |
| --------- | --------------------------- | ---- | ---------------------------------------- | | --------- | --------------------------- | ---- | ---------------------------------------- |
| requestId | number | 是 | 延迟挂起的请求ID。这个值通过调用[requestSuspendDelay](#backgroundtaskmanagerrequestsuspenddelay)方法获取。 | | requestId | number | 是 | 延迟挂起的请求ID。这个值通过调用[requestSuspendDelay](#backgroundtaskmanagerrequestsuspenddelay)方法获取。 |
| callback | AsyncCallback&lt;number&gt; | 是 | 指定的callback回调方法。用于返回应用程序进入挂起状态之前的剩余时间,以毫秒为单位。 | | callback | AsyncCallback&lt;number&gt; | 是 | 指定的callback回调方法。用于返回应用程序进入挂起状态之前的剩余时间,以毫秒为单位。 |
...@@ -103,7 +103,7 @@ getRemainingDelayTime(requestId: number): Promise&lt;number&gt; ...@@ -103,7 +103,7 @@ getRemainingDelayTime(requestId: number): Promise&lt;number&gt;
**参数** **参数**
| 参数名 | 类型 | 必填 | 说明 | | 名称 | 类型 | 必填 | 说明 |
| --------- | ------ | ---- | ---------- | | --------- | ------ | ---- | ---------- |
| requestId | number | 是 | 延迟挂起的请求ID。这个值通过调用[requestSuspendDelay](#backgroundtaskmanagerrequestsuspenddelay)方法获取。 | | requestId | number | 是 | 延迟挂起的请求ID。这个值通过调用[requestSuspendDelay](#backgroundtaskmanagerrequestsuspenddelay)方法获取。 |
...@@ -135,7 +135,7 @@ cancelSuspendDelay(requestId: number): void ...@@ -135,7 +135,7 @@ cancelSuspendDelay(requestId: number): void
**参数** **参数**
| 参数名 | 类型 | 必填 | 说明 | | 名称 | 类型 | 必填 | 说明 |
| --------- | ------ | ---- | ---------- | | --------- | ------ | ---- | ---------- |
| requestId | number | 是 | 延迟挂起的请求ID。这个值通过调用[requestSuspendDelay](#backgroundtaskmanagerrequestsuspenddelay)方法获取。 | | requestId | number | 是 | 延迟挂起的请求ID。这个值通过调用[requestSuspendDelay](#backgroundtaskmanagerrequestsuspenddelay)方法获取。 |
...@@ -159,7 +159,7 @@ startBackgroundRunning(context: Context, bgMode: BackgroundMode, wantAgent: Want ...@@ -159,7 +159,7 @@ startBackgroundRunning(context: Context, bgMode: BackgroundMode, wantAgent: Want
**参数** **参数**
| 参数名 | 类型 | 必填 | 说明 | | 名称 | 类型 | 必填 | 说明 |
| --------- | ---------------------------------- | ---- | ---------------------------------------- | | --------- | ---------------------------------- | ---- | ---------------------------------------- |
| context | Context | 是 | 应用运行的上下文。<br>FA模型的应用Context定义见[Context](js-apis-Context.md)<br>Stage模型的应用Context定义见[Context](js-apis-ability-context.md)。 | | context | Context | 是 | 应用运行的上下文。<br>FA模型的应用Context定义见[Context](js-apis-Context.md)<br>Stage模型的应用Context定义见[Context](js-apis-ability-context.md)。 |
| bgMode | [BackgroundMode](#backgroundmode8) | 是 | 向系统申请的后台模式。 | | bgMode | [BackgroundMode](#backgroundmode8) | 是 | 向系统申请的后台模式。 |
...@@ -251,7 +251,7 @@ startBackgroundRunning(context: Context, bgMode: BackgroundMode, wantAgent: Want ...@@ -251,7 +251,7 @@ startBackgroundRunning(context: Context, bgMode: BackgroundMode, wantAgent: Want
**参数** **参数**
| 参数名 | 类型 | 必填 | 说明 | | 名称 | 类型 | 必填 | 说明 |
| --------- | ---------------------------------- | ---- | ---------------------------------------- | | --------- | ---------------------------------- | ---- | ---------------------------------------- |
| context | Context | 是 | 应用运行的上下文。<br>FA模型的应用Context定义见[Context](js-apis-Context.md)<br>Stage模型的应用Context定义见[Context](js-apis-ability-context.md)。 | | context | Context | 是 | 应用运行的上下文。<br>FA模型的应用Context定义见[Context](js-apis-Context.md)<br>Stage模型的应用Context定义见[Context](js-apis-ability-context.md)。 |
| bgMode | [BackgroundMode](#backgroundmode8) | 是 | 向系统申请的后台模式。 | | bgMode | [BackgroundMode](#backgroundmode8) | 是 | 向系统申请的后台模式。 |
...@@ -337,7 +337,7 @@ stopBackgroundRunning(context: Context, callback: AsyncCallback&lt;void&gt;): vo ...@@ -337,7 +337,7 @@ stopBackgroundRunning(context: Context, callback: AsyncCallback&lt;void&gt;): vo
**参数** **参数**
| 参数名 | 类型 | 必填 | 说明 | | 名称 | 类型 | 必填 | 说明 |
| -------- | ------------------------- | ---- | ---------------------------------------- | | -------- | ------------------------- | ---- | ---------------------------------------- |
| context | Context | 是 | 应用运行的上下文。<br>FA模型的应用Context定义见[Context](js-apis-Context.md)<br>Stage模型的应用Context定义见[Context](js-apis-ability-context.md)。 | | context | Context | 是 | 应用运行的上下文。<br>FA模型的应用Context定义见[Context](js-apis-Context.md)<br>Stage模型的应用Context定义见[Context](js-apis-ability-context.md)。 |
| callback | AsyncCallback&lt;void&gt; | 是 | callback形式返回启动长时任务的结果。 | | callback | AsyncCallback&lt;void&gt; | 是 | callback形式返回启动长时任务的结果。 |
...@@ -393,7 +393,7 @@ stopBackgroundRunning(context: Context): Promise&lt;void&gt; ...@@ -393,7 +393,7 @@ stopBackgroundRunning(context: Context): Promise&lt;void&gt;
**参数** **参数**
| 参数名 | 类型 | 必填 | 说明 | | 名称 | 类型 | 必填 | 说明 |
| ------- | ------- | ---- | ---------------------------------------- | | ------- | ------- | ---- | ---------------------------------------- |
| context | Context | 是 | 应用运行的上下文。<br>FA模型的应用Context定义见[Context](js-apis-Context.md)<br>Stage模型的应用Context定义见[Context](js-apis-ability-context.md)。 | | context | Context | 是 | 应用运行的上下文。<br>FA模型的应用Context定义见[Context](js-apis-Context.md)<br>Stage模型的应用Context定义见[Context](js-apis-ability-context.md)。 |
...@@ -436,13 +436,76 @@ export default class MainAbility extends Ability { ...@@ -436,13 +436,76 @@ export default class MainAbility extends Ability {
}; };
``` ```
## backgroundTaskManager.applyEfficiencyResources<sup>9+</sup>
applyEfficiencyResources(request: [EfficiencyResourcesRequest](#efficiencyresourcesrequest9)): boolean
向系统申请或释放能效资源,使用boolean形式返回结果。
通过EfficiencyResourcesRequest参数中的isApply变量,设置是申请还是释放。
应用使用此接口,需要向应用中心申请获得相应特权。
进程和它所属的应用可以同时申请某一类资源,例如CPU资源,但是应用释放资源的时候会将进程的资源一起释放。
**系统能力**: SystemCapability.ResourceSchedule.BackgroundTaskManager.EfficiencyResourcesApply
**系统API**: 此接口为系统接口。
**参数**
| 名称 | 类型 | 必填 | 说明 |
| ------- | ------- | ---- | ---------------------------------------- |
| request | [EfficiencyResourcesRequest](#efficiencyresourcesrequest9) | 是 | 请求的必要信息。包括资源类型,超时时间等信息。详见[EfficiencyResourcesRequest](#efficiencyresourcesrequest9)。 |
**返回值**
| 类型 | 说明 |
| -------------- | ---------------- |
| boolean | true代表申请成功,false代表申请失败。 |
**示例**
```js
import backgroundTaskManager from '@ohos.backgroundTaskManager';
let request = {
resourceTypes: backgroundTaskManager.ResourceType.CPU,
// 如果将isApply置为false,则表示释放资源
isApply: true,
timeOut: 0,
reason: "apply",
isPersist: true,
isProcess: false,
};
let res = backgroundTaskManager.applyEfficiencyResources(request);
console.info("result of applyEfficiencyResources is: " + res)
```
## backgroundTaskManager.resetAllEfficiencyResources<sup>9+</sup>
resetAllEfficiencyResources(): void
释放所有已经申请的资源。
应用使用此接口,需要向应用中心申请获得相应特权。
**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.EfficiencyResourcesApply
**系统API**: 此接口为系统接口。
**示例**
```js
import backgroundTaskManager from '@ohos.backgroundTaskManager';
backgroundTaskManager.resetAllEfficiencyResources();
```
## DelaySuspendInfo ## DelaySuspendInfo
延迟挂起信息。 延迟挂起信息。
**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.TransientTask **系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.TransientTask
| 参数名 | 类型 | 必填 | 说明 | | 名称 | 类型 | 必填 | 说明 |
| --------------- | ------ | ---- | ---------------------------------------- | | --------------- | ------ | ---- | ---------------------------------------- |
| requestId | number | 是 | 延迟挂起的请求ID。 | | requestId | number | 是 | 延迟挂起的请求ID。 |
| actualDelayTime | number | 是 | 应用的实际挂起延迟时间,以毫秒为单位。<br/>一般情况下默认值为180000,低电量(依据系统低电量广播)时默认值为60000。 | | actualDelayTime | number | 是 | 应用的实际挂起延迟时间,以毫秒为单位。<br/>一般情况下默认值为180000,低电量(依据系统低电量广播)时默认值为60000。 |
...@@ -452,14 +515,49 @@ export default class MainAbility extends Ability { ...@@ -452,14 +515,49 @@ export default class MainAbility extends Ability {
**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.ContinuousTask **系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.ContinuousTask
| 参数名 | 描述 | | 名称 | 值 | 描述 |
| ----------------------- | --------------------- | | ----------------------- | ---- | --------------------- |
| DATA_TRANSFER | 数据传输。 | | DATA_TRANSFER | 1 | 数据传输。 |
| AUDIO_PLAYBACK | 音频播放。 | | AUDIO_PLAYBACK | 2 | 音频播放。 |
| AUDIO_RECORDING | 录音。 | | AUDIO_RECORDING | 3 | 录音。 |
| LOCATION | 定位导航。 | | LOCATION | 4 | 定位导航。 |
| BLUETOOTH_INTERACTION | 蓝牙相关。 | | BLUETOOTH_INTERACTION | 5 | 蓝牙相关。 |
| MULTI_DEVICE_CONNECTION | 多设备互联。 | | MULTI_DEVICE_CONNECTION | 6 | 多设备互联。 |
| WIFI_INTERACTION | WLAN相关(此接口为系统接口)。 | | WIFI_INTERACTION | 7 | WLAN相关<br />此接口为系统接口。 |
| VOIP | 音视频通话(此接口为系统接口)。 | | VOIP | 8 | 音视频通话<br />此接口为系统接口。 |
| TASK_KEEPING | 计算任务(仅在特定设备生效)。 | | TASK_KEEPING | 9 | 计算任务(仅在特定设备生效)。 |
\ No newline at end of file
## EfficiencyResourcesRequest<sup>9+</sup>
能效资源申请参数。
**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.EfficiencyResourcesApply
**系统API**: 此接口为系统接口。
| 名称 | 类型 | 必填 | 说明 |
| --------------- | ------ | ---- | ---------------------------------------- |
| resourceTypes | number | 是 | 申请的资源类型。 |
| isApply | boolean | 是 | 申请资源或者是释放资源。 |
| timeOut | number | 是 | 资源的使用时间,以毫秒为单位。 |
| isPersist | boolean | 否 | 是否永久持有资源,如果是true,那么timeOut就无效。 |
| isProcess | boolean | 否 | 应用申请或者是进程申请。 |
| reason | string | 是 | 申请资源的原因。 |
## ResourceType<sup>9+</sup>
能效资源类型。
**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.EfficiencyResourcesApply
**系统API**: 此接口为系统接口。
| 名称 | 值 | 描述 |
| ----------------------- | ---- | --------------------- |
| CPU | 1 | CPU资源,申请后不被挂起。 |
| COMMON_EVENT | 2 | 公共事件,申请后挂起状态下不被代理掉。 |
| TIMER | 4 | 计时器,申请后挂起状态下不被代理掉。 |
| WORK_SCHEDULER | 8 | 延迟任务,申请后有更长的执行时间。 |
| BLUETOOTH | 16 | 蓝牙相关,申请后挂起状态下不被代理掉。 |
| GPS | 32 | GPS相关,申请后挂起状态下不被代理掉。 |
| AUDIO | 64 | 音频资源,申请后挂起状态下不被代理掉。 |
\ No newline at end of file
...@@ -5,7 +5,6 @@ ...@@ -5,7 +5,6 @@
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 > 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
## 导入模块 ## 导入模块
``` ```
...@@ -18,7 +17,7 @@ import cardEmulation from '@ohos.nfc.cardEmulation'; ...@@ -18,7 +17,7 @@ import cardEmulation from '@ohos.nfc.cardEmulation';
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
| 名称 | 默认值 | 说明 | | 名称 | 值 | 说明 |
| -------- | -------- | -------- | | -------- | -------- | -------- |
| HCE | 0 | HCE 卡模拟。 | | HCE | 0 | HCE 卡模拟。 |
| UICC | 1 | SIM 卡模拟。 | | UICC | 1 | SIM 卡模拟。 |
...@@ -40,9 +39,9 @@ isSupported(feature: number): boolean ...@@ -40,9 +39,9 @@ isSupported(feature: number): boolean
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| -------- | -------- | | -------- | -------- |
| boolean | true: 支持该类型卡模拟,&nbsp;false: 不支持该类型卡模拟。 | | boolean | true: 支持该类型卡模拟,&nbsp;false: 不支持该类型卡模拟。|
## HceService<sup>8+</sup> ## HceService<sup>8+</sup>
......
...@@ -5,14 +5,12 @@ ...@@ -5,14 +5,12 @@
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 > 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
## 导入模块 ## 导入模块
``` ```js
import connectedTag from '@ohos.connectedTag'; import connectedTag from '@ohos.connectedTag';
``` ```
## connectedTag.init ## connectedTag.init
init(): boolean init(): boolean
...@@ -23,11 +21,11 @@ init(): boolean ...@@ -23,11 +21,11 @@ init(): boolean
**系统能力**:SystemCapability.Communication.ConnectedTag **系统能力**:SystemCapability.Communication.ConnectedTag
- 返回值: **返回值:**
| **类型** | **说明** |
| -------- | -------- |
| boolean | true:初始化成功,&nbsp;false:初始化失败。 |
| **类型** | **说明** |
| -------- | -------- |
| boolean | true:初始化成功,&nbsp;false:初始化失败。 |
## connectedTag.uninit ## connectedTag.uninit
...@@ -39,11 +37,11 @@ uninit(): boolean ...@@ -39,11 +37,11 @@ uninit(): boolean
**系统能力**:SystemCapability.Communication.ConnectedTag **系统能力**:SystemCapability.Communication.ConnectedTag
- 返回值: **返回值:**
| **类型** | **说明** |
| -------- | -------- |
| boolean | true:卸载操作成功,&nbsp;false:卸载操作失败。 |
| **类型** | **说明** |
| -------- | -------- |
| boolean | true:卸载操作成功,&nbsp;false:卸载操作失败。 |
## connectedTag.readNdefTag ## connectedTag.readNdefTag
...@@ -55,19 +53,21 @@ readNdefTag(): Promise&lt;string&gt; ...@@ -55,19 +53,21 @@ readNdefTag(): Promise&lt;string&gt;
**系统能力**:SystemCapability.Communication.ConnectedTag **系统能力**:SystemCapability.Communication.ConnectedTag
- 返回值: **返回值:**
| **类型** | **说明** |
| -------- | -------- | | **类型** | **说明** |
| Promise&lt;string&gt; | 返回读取有源标签内容。 | | -------- | -------- |
| Promise&lt;string&gt; | 返回读取有源标签内容。 |
**示例:**
- 示例 ```js
``` import connectedTag from '@ohos.connectedTag';
import connectedTag from '@ohos.connectedTag';
connectedTag.readNdefTag().then(result => { connectedTag.readNdefTag().then(result => {
console.log("promise recv ndef response: " + result); console.log("promise recv ndef response: " + result);
}); });
``` ```
## connectedTag.readNdefTag ## connectedTag.readNdefTag
...@@ -79,19 +79,21 @@ readNdefTag(callback: AsyncCallback&lt;string&gt;): void ...@@ -79,19 +79,21 @@ readNdefTag(callback: AsyncCallback&lt;string&gt;): void
**系统能力**:SystemCapability.Communication.ConnectedTag **系统能力**:SystemCapability.Communication.ConnectedTag
- 参数 **参数:**
| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| callback | AsyncCallback&lt;string&gt; | 是 | 读取有源标签内容回调函数。 |
- 示例 | **参数名** | **类型** | **必填** | **说明** |
``` | -------- | -------- | -------- | -------- |
import connectedTag from '@ohos.connectedTag'; | callback | AsyncCallback&lt;string&gt; | 是 | 读取有源标签内容回调函数。 |
connectedTag.readNdefTag(result => { **示例:**
console.log("callback recv ndef response: " + result);
}); ```js
``` import connectedTag from '@ohos.connectedTag';
connectedTag.readNdefTag(result => {
console.log("callback recv ndef response: " + result);
});
```
## connectedTag.writeNdefTag ## connectedTag.writeNdefTag
...@@ -103,29 +105,32 @@ writeNdefTag(data: string): Promise&lt;void&gt; ...@@ -103,29 +105,32 @@ writeNdefTag(data: string): Promise&lt;void&gt;
**系统能力**:SystemCapability.Communication.ConnectedTag **系统能力**:SystemCapability.Communication.ConnectedTag
- 参数 **参数:**
| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| data | string | 是 | 有源标签内容, 长度最大是1024个字节。 |
- 返回值: | **参数名** | **类型** | **必填** | **说明** |
| **类型** | **说明** | | -------- | -------- | -------- | -------- |
| -------- | -------- | | data | string | 是 | 有源标签内容, 长度最大是1024个字节。 |
| Promise&lt;void&gt; | 无返回值。 |
- 示例 **返回值:**
```
import connectedTag from '@ohos.connectedTag'; | **类型** | **说明** |
| -------- | -------- |
writeNdefTag.write("010203") | Promise&lt;void&gt; | 无返回值。 |
.then((value) => {
// 事件写入正常 **示例:**
console.log(`success to write event: ${value}`);
}).catch((err) => { ```js
// 事件写入异常 import connectedTag from '@ohos.connectedTag';
console.error(`failed to write event because ${err.code}`);
}); connectedTag.write("010203")
``` .then((value) => {
// 事件写入正常
console.log(`success to write event: ${value}`);
}).catch((err) => {
// 事件写入异常
console.error(`failed to write event because ${err.code}`);
});
```
## connectedTag.writeNdefTag ## connectedTag.writeNdefTag
...@@ -137,27 +142,29 @@ writeNdefTag(data: string, callback: AsyncCallback&lt;void&gt;): void ...@@ -137,27 +142,29 @@ writeNdefTag(data: string, callback: AsyncCallback&lt;void&gt;): void
**系统能力**:SystemCapability.Communication.ConnectedTag **系统能力**:SystemCapability.Communication.ConnectedTag
- 参数 **参数:**
| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| data | string | 是 | 有源标签内容, 长度最大是1024个字节。 |
| callback | AsyncCallback&lt;string&gt; | 是 | 读取有源标签内容回调函数。 |
- 示例 | **参数名** | **类型** | **必填** | **说明** |
``` | -------- | -------- | -------- | -------- |
import connectedTag from '@ohos.connectedTag'; | data | string | 是 | 有源标签内容, 长度最大是1024个字节。 |
| callback | AsyncCallback&lt;string&gt; | 是 | 读取有源标签内容回调函数。 |
connectedTag.writeNdefTag("010203", (err, value) => {
if (err) { **示例:**
// 事件写入异常
console.error(`failed to write event because ${err.code}`); ```js
return; import connectedTag from '@ohos.connectedTag';
}
connectedTag.writeNdefTag("010203", (err, value) => {
// 事件写入正常 if (err) {
console.log(`success to write event: ${value}`); // 事件写入异常
}); console.error(`failed to write event because ${err.code}`);
``` return;
}
// 事件写入正常
console.log(`success to write event: ${value}`);
});
```
## connectedTag.on('notify') ## connectedTag.on('notify')
...@@ -169,18 +176,12 @@ on(type: "notify", callback: Callback&lt;number&gt;): void ...@@ -169,18 +176,12 @@ on(type: "notify", callback: Callback&lt;number&gt;): void
**系统能力**:SystemCapability.Communication.ConnectedTag **系统能力**:SystemCapability.Communication.ConnectedTag
- 参数 **参数:**
| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| type | string | 是 | 固定填"notify"字符串 |
| callback | Callback&lt;number&gt; | 是 | 状态改变回调函数。 |
- 状态改变事件的枚举。
| **枚举值** | **说明** |
| -------- | -------- |
| 0 | NFC离场事件 |
| 1 | NFC进场事件 |
| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| type | string | 是 | 固定填"notify"字符串 |
| callback | Callback&lt;number&gt; | 是 | 状态改变回调函数,返回值参见[NfcRfType](#nfcrftype)。 |
## connectedTag.off('notify') ## connectedTag.off('notify')
...@@ -192,28 +193,28 @@ off(type: "notify", callback?: Callback&lt;number&gt;): void ...@@ -192,28 +193,28 @@ off(type: "notify", callback?: Callback&lt;number&gt;): void
**系统能力**:SystemCapability.Communication.ConnectedTag **系统能力**:SystemCapability.Communication.ConnectedTag
- 参数 **参数:**
| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| type | string | 是 | 固定填"notify"字符串 |
| callback | Callback&lt;number&gt; | 否 | 状态改变回调函数。如果callback不填,将“去注册”该事件关联的所有回调函数。 |
- 示例 | **参数名** | **类型** | **必填** | **说明** |
``` | -------- | -------- | -------- | -------- |
import connectedTag from '@ohos.connectedTag'; | type | string | 是 | 固定填"notify"字符串 |
| callback | Callback&lt;number&gt; | 否 | 状态改变回调函数。如果callback不填,将“去注册”该事件关联的所有回调函数。|
var NFC_RF_NOTIFY = "notify";
**示例:**
var recvNfcRfNotifyFunc = result => {
console.info("nfc rf receive state: " + result); ```js
} import connectedTag from '@ohos.connectedTag';
// Register event var recvNfcRfNotifyFunc = result => {
connectedTag.on(NFC_RF_NOTIFY, recvNfcRfNotifyFunc); console.info("nfc rf receive state: " + result);
}
// Unregister event // Register event
connectedTag.off(NFC_RF_NOTIFY, recvNfcRfNotifyFunc); connectedTag.on("notify", recvNfcRfNotifyFunc);
```
// Unregister event
connectedTag.off("notify", recvNfcRfNotifyFunc);
```
## NfcRfType ## NfcRfType
...@@ -221,7 +222,7 @@ off(type: "notify", callback?: Callback&lt;number&gt;): void ...@@ -221,7 +222,7 @@ off(type: "notify", callback?: Callback&lt;number&gt;): void
**系统能力**:SystemCapability.Communication.ConnectedTag **系统能力**:SystemCapability.Communication.ConnectedTag
| 名称 | 默认值 | 说明 | | 名称 | 值 | 说明 |
| -------- | -------- | -------- | | -------- | -------- | -------- |
| NFC_RF_LEAVE | 0 | NFC离场事件 | | NFC_RF_LEAVE | 0 | NFC离场事件 |
| NFC_RF_ENTER | 1 | NFC进场事件 | | NFC_RF_ENTER | 1 | NFC进场事件 |
...@@ -18,7 +18,7 @@ import cryptoFramework from "@ohos.security.cryptoFramework" ...@@ -18,7 +18,7 @@ import cryptoFramework from "@ohos.security.cryptoFramework"
**系统能力:** SystemCapability.Security.CryptoFramework **系统能力:** SystemCapability.Security.CryptoFramework
| 名称 | 默认值 | 描述 | | 名称 | 值 | 说明 |
| ------------------------------------- | -------- | ---------------------------- | | ------------------------------------- | -------- | ---------------------------- |
| INVALID_PARAMS | 401 | 非法入参。 | | INVALID_PARAMS | 401 | 非法入参。 |
| NOT_SUPPORT | 801 | 操作不支持。 | | NOT_SUPPORT | 801 | 操作不支持。 |
...@@ -37,7 +37,7 @@ import cryptoFramework from "@ohos.security.cryptoFramework" ...@@ -37,7 +37,7 @@ import cryptoFramework from "@ohos.security.cryptoFramework"
buffer数组。 buffer数组。
**系统能力:** SystemCapability.Security.CryptoFramework **系统能力:** SystemCapability.Security.CryptoFramework
| 名称 | 类型 | 可读 | 可写 | 描述 | | 名称 | 类型 | 可读 | 可写 | 说明 |
| ---- | ---------- | ---- | ---- | ------ | | ---- | ---------- | ---- | ---- | ------ |
| data | Uint8Array | 是 | 是 | 数据。 | | data | Uint8Array | 是 | 是 | 数据。 |
...@@ -46,7 +46,7 @@ buffer数组。 ...@@ -46,7 +46,7 @@ buffer数组。
buffer数组的列表。 buffer数组的列表。
**系统能力:** SystemCapability.Security.CryptoFramework **系统能力:** SystemCapability.Security.CryptoFramework
| 名称 | 类型 | 可读 | 可写 | 描述 | | 名称 | 类型 | 可读 | 可写 | 说明 |
| ---- | ---------- | ---- | ---- | ---------- | | ---- | ---------- | ---- | ---- | ---------- |
| data | Uint8Array | 是 | 是 | 数据列表。 | | data | Uint8Array | 是 | 是 | 数据列表。 |
...@@ -56,7 +56,7 @@ buffer数组的列表。 ...@@ -56,7 +56,7 @@ buffer数组的列表。
**系统能力:** SystemCapability.Security.CryptoFramework **系统能力:** SystemCapability.Security.CryptoFramework
| 名称 | 默认值 | 描述 | | 名称 | 值 | 说明 |
| ---------- | ------ | --------- | | ---------- | ------ | --------- |
| FORMAT_DER | 0 | DER格式。 | | FORMAT_DER | 0 | DER格式。 |
| FORMAT_PEM | 1 | PEM格式。 | | FORMAT_PEM | 1 | PEM格式。 |
...@@ -70,9 +70,9 @@ buffer数组的列表。 ...@@ -70,9 +70,9 @@ buffer数组的列表。
**系统能力:** SystemCapability.Security.CryptoFramework **系统能力:** SystemCapability.Security.CryptoFramework
| 名称 | 类型 | 可读 | 可写 | 描述 | | 名称 | 类型 | 可读 | 可写 | 说明 |
| -------------- | --------------------------------- | ---- | ---- | ------------------------------ | | -------------- | --------------------------------- | ---- | ---- | ------------------------------ |
| data | Uint8Array | 是 | 是 | 传入的数据中,包含的证书数量。 | | data | Uint8Array | 是 | 是 | 传入的证书数据。 |
| encodingFormat | [EncodingFormat](#encodingformat) | 是 | 是 | 指明证书编码格式。 | | encodingFormat | [EncodingFormat](#encodingformat) | 是 | 是 | 指明证书编码格式。 |
...@@ -84,7 +84,7 @@ buffer数组的列表。 ...@@ -84,7 +84,7 @@ buffer数组的列表。
**系统能力:** SystemCapability.Security.CryptoFramework **系统能力:** SystemCapability.Security.CryptoFramework
| 名称 | 类型 | 可读 | 可写 | 描述 | | 名称 | 类型 | 可读 | 可写 | 说明 |
| -------------- | --------------------------------- | ---- | ---- | ------------------------------------------------------------ | | -------------- | --------------------------------- | ---- | ---- | ------------------------------------------------------------ |
| data | Uint8Array | 是 | 是 | 证书数据,按照长度(2字节)-数据的形式传入,如:08ABCDEFGH07ABCDEFG,第一本证书,前2个字节表示证书的长度为8字节,后面附加8字节的证书数据;第2本证书前2个字节表示证书的长度为7字节,后面附加7字节的证书数据。 | | data | Uint8Array | 是 | 是 | 证书数据,按照长度(2字节)-数据的形式传入,如:08ABCDEFGH07ABCDEFG,第一本证书,前2个字节表示证书的长度为8字节,后面附加8字节的证书数据;第2本证书前2个字节表示证书的长度为7字节,后面附加7字节的证书数据。 |
| count | number | 是 | 是 | 传入的数据中,包含的证书数量。 | | count | number | 是 | 是 | 传入的数据中,包含的证书数量。 |
...@@ -1017,7 +1017,7 @@ promiseGenerateRand.then(randData => { ...@@ -1017,7 +1017,7 @@ promiseGenerateRand.then(randData => {
**系统能力:** SystemCapability.Security.CryptoFramework **系统能力:** SystemCapability.Security.CryptoFramework
| 名称 | 类型 | 可读 | 可写 | 描述 | | 名称 | 类型 | 可读 | 可写 | 说明 |
| -------- | ------ | ---- | ---- | ----------------------- | | -------- | ------ | ---- | ---- | ----------------------- |
| algoName | string | 是 | 是 | 指明对称加解密参数的算法模式。可选值如下:<br/>- "IvParamsSpec": 适用于CBC\|CTR\|OFB\|CFB模式<br/>- "GcmParamsSpec": 适用于GCM模式<br/>- "CcmParamsSpec": 适用于CCM模式 | | algoName | string | 是 | 是 | 指明对称加解密参数的算法模式。可选值如下:<br/>- "IvParamsSpec": 适用于CBC\|CTR\|OFB\|CFB模式<br/>- "GcmParamsSpec": 适用于GCM模式<br/>- "CcmParamsSpec": 适用于CCM模式 |
...@@ -1030,7 +1030,7 @@ promiseGenerateRand.then(randData => { ...@@ -1030,7 +1030,7 @@ promiseGenerateRand.then(randData => {
**系统能力:** SystemCapability.Security.CryptoFramework **系统能力:** SystemCapability.Security.CryptoFramework
| 名称 | 类型 | 可读 | 可写 | 描述 | | 名称 | 类型 | 可读 | 可写 | 说明 |
| ---- | --------------------- | ---- | ---- | ------------------------------------------------------------ | | ---- | --------------------- | ---- | ---- | ------------------------------------------------------------ |
| iv | [DataBlob](#datablob) | 是 | 是 | 指明加解密参数iv。常见取值如下:<br/>- AES的CBC\|CTR\|OFB\|CFB模式:iv长度为16字节<br/>- 3DES的CBC\|OFB\|CFB模式:iv长度为8字节 | | iv | [DataBlob](#datablob) | 是 | 是 | 指明加解密参数iv。常见取值如下:<br/>- AES的CBC\|CTR\|OFB\|CFB模式:iv长度为16字节<br/>- 3DES的CBC\|OFB\|CFB模式:iv长度为8字节 |
...@@ -1043,7 +1043,7 @@ promiseGenerateRand.then(randData => { ...@@ -1043,7 +1043,7 @@ promiseGenerateRand.then(randData => {
**系统能力:** SystemCapability.Security.CryptoFramework **系统能力:** SystemCapability.Security.CryptoFramework
| 名称 | 类型 | 可读 | 可写 | 描述 | | 名称 | 类型 | 可读 | 可写 | 说明 |
| ------- | --------------------- | ---- | ---- | ------------------------------------------------------------ | | ------- | --------------------- | ---- | ---- | ------------------------------------------------------------ |
| iv | [DataBlob](#datablob) | 是 | 是 | 指明加解密参数iv,长度为12字节 | | iv | [DataBlob](#datablob) | 是 | 是 | 指明加解密参数iv,长度为12字节 |
| aad | [DataBlob](#datablob) | 是 | 是 | 指明加解密参数aad,长度为8字节 | | aad | [DataBlob](#datablob) | 是 | 是 | 指明加解密参数aad,长度为8字节 |
...@@ -1058,7 +1058,7 @@ promiseGenerateRand.then(randData => { ...@@ -1058,7 +1058,7 @@ promiseGenerateRand.then(randData => {
**系统能力:** SystemCapability.Security.CryptoFramework **系统能力:** SystemCapability.Security.CryptoFramework
| 名称 | 类型 | 可读 | 可写 | 描述 | | 名称 | 类型 | 可读 | 可写 | 说明 |
| ------- | --------------------- | ---- | ---- | ------------------------------------------------------------ | | ------- | --------------------- | ---- | ---- | ------------------------------------------------------------ |
| iv | [DataBlob](#datablob) | 是 | 是 | 指明加解密参数iv,长度为7字节 | | iv | [DataBlob](#datablob) | 是 | 是 | 指明加解密参数iv,长度为7字节 |
| aad | [DataBlob](#datablob) | 是 | 是 | 指明加解密参数aad,长度为8字节 | | aad | [DataBlob](#datablob) | 是 | 是 | 指明加解密参数aad,长度为8字节 |
...@@ -1073,7 +1073,7 @@ promiseGenerateRand.then(randData => { ...@@ -1073,7 +1073,7 @@ promiseGenerateRand.then(randData => {
**系统能力:** SystemCapability.Security.CryptoFramework **系统能力:** SystemCapability.Security.CryptoFramework
| 名称 | 值 | 描述 | | 名称 | 值 | 说明 |
| ------------ | ---- | ---------------- | | ------------ | ---- | ---------------- |
| ENCRYPT_MODE | 0 | 表示进行加密操作 | | ENCRYPT_MODE | 0 | 表示进行加密操作 |
| DECRYPT_MODE | 1 | 表示进行解密操作 | | DECRYPT_MODE | 1 | 表示进行解密操作 |
...@@ -1086,7 +1086,7 @@ promiseGenerateRand.then(randData => { ...@@ -1086,7 +1086,7 @@ promiseGenerateRand.then(randData => {
**系统能力:** SystemCapability.Security.CryptoFramework **系统能力:** SystemCapability.Security.CryptoFramework
| 名称 | 类型 | 可读 | 可写 | 描述 | | 名称 | 类型 | 可读 | 可写 | 说明 |
| ------- | ------ | ---- | ---- | ---------------------------- | | ------- | ------ | ---- | ---- | ---------------------------- |
| format | string | 是 | 否 | 密钥的格式。 | | format | string | 是 | 否 | 密钥的格式。 |
| algName | string | 是 | 否 | 密钥对应的算法名(含长度)。 | | algName | string | 是 | 否 | 密钥对应的算法名(含长度)。 |
...@@ -1101,7 +1101,7 @@ getEncoded() : DataBlob ...@@ -1101,7 +1101,7 @@ getEncoded() : DataBlob
**返回值:** **返回值:**
| 类型 | 描述 | | 类型 | 说明 |
| --------------------- | ------------------------ | | --------------------- | ------------------------ |
| [DataBlob](#datablob) | 用于查看密钥的具体内容。 | | [DataBlob](#datablob) | 用于查看密钥的具体内容。 |
...@@ -1158,7 +1158,7 @@ console.info("key hex:" + uint8ArrayToShowStr(encodedKey.data)); // 输出全 ...@@ -1158,7 +1158,7 @@ console.info("key hex:" + uint8ArrayToShowStr(encodedKey.data)); // 输出全
**系统能力:** SystemCapability.Security.CryptoFramework **系统能力:** SystemCapability.Security.CryptoFramework
| 名称 | 类型 | 可读 | 可写 | 描述 | | 名称 | 类型 | 可读 | 可写 | 说明 |
| ------- | ------ | ---- | ---- | ---------------------------- | | ------- | ------ | ---- | ---- | ---------------------------- |
| format | string | 是 | 否 | 密钥的格式。 | | format | string | 是 | 否 | 密钥的格式。 |
| algName | string | 是 | 否 | 密钥对应的算法名(含长度)。 | | algName | string | 是 | 否 | 密钥对应的算法名(含长度)。 |
...@@ -1174,7 +1174,7 @@ getEncoded() : DataBlob ...@@ -1174,7 +1174,7 @@ getEncoded() : DataBlob
**返回值:** **返回值:**
| 类型 | 描述 | | 类型 | 说明 |
| --------------------- | ------------------------ | | --------------------- | ------------------------ |
| [DataBlob](#datablob) | 用于查看密钥的具体内容。 | | [DataBlob](#datablob) | 用于查看密钥的具体内容。 |
...@@ -1202,7 +1202,7 @@ console.info("key encoded:" + uint8ArrayToShowStr(encodedKey.data)); ...@@ -1202,7 +1202,7 @@ console.info("key encoded:" + uint8ArrayToShowStr(encodedKey.data));
**系统能力:** SystemCapability.Security.CryptoFramework **系统能力:** SystemCapability.Security.CryptoFramework
| 名称 | 类型 | 可读 | 可写 | 描述 | | 名称 | 类型 | 可读 | 可写 | 说明 |
| ------- | ------ | ---- | ---- | ---------------------------- | | ------- | ------ | ---- | ---- | ---------------------------- |
| format | string | 是 | 否 | 密钥的格式。 | | format | string | 是 | 否 | 密钥的格式。 |
| algName | string | 是 | 否 | 密钥对应的算法名(含长度)。 | | algName | string | 是 | 否 | 密钥对应的算法名(含长度)。 |
...@@ -1217,7 +1217,7 @@ getEncoded() : DataBlob ...@@ -1217,7 +1217,7 @@ getEncoded() : DataBlob
**返回值:** **返回值:**
| 类型 | 描述 | | 类型 | 说明 |
| --------------------- | ------------------------ | | --------------------- | ------------------------ |
| [DataBlob](#datablob) | 用于查看密钥的具体内容。 | | [DataBlob](#datablob) | 用于查看密钥的具体内容。 |
...@@ -1252,6 +1252,20 @@ let key; // key为使用非对称密钥生成器生成的非对称密钥的私 ...@@ -1252,6 +1252,20 @@ let key; // key为使用非对称密钥生成器生成的非对称密钥的私
key.clearMem(); key.clearMem();
``` ```
## KeyPair
非对称密钥对,包含:公钥与私钥,。<br/>可以通过非对称密钥生成器AsyKeyGenerator来生成。
### 属性
**系统能力:** SystemCapability.Security.CryptoFramework
| 名称 | 类型 | 可读 | 可写 | 说明 |
| ------- | ------ | ---- | ---- | ------------ |
| priKey | [PriKey](#prikey) | 是 | 否 | 私钥。 |
| pubKey | [PubKey](#pubkey) | 是 | 否 | 公钥。 |
## cryptoFramework.createSymKeyGenerator ## cryptoFramework.createSymKeyGenerator
createSymKeyGenerator(algName : string) : SymKeyGenerator createSymKeyGenerator(algName : string) : SymKeyGenerator
...@@ -1287,7 +1301,7 @@ let symKeyGenerator = cryptoFramework.createSymKeyGenerator('3DES192'); ...@@ -1287,7 +1301,7 @@ let symKeyGenerator = cryptoFramework.createSymKeyGenerator('3DES192');
**系统能力:** SystemCapability.Security.CryptoFramework **系统能力:** SystemCapability.Security.CryptoFramework
| 名称 | 类型 | 可读 | 可写 | 描述 | | 名称 | 类型 | 可读 | 可写 | 说明 |
| ------- | ------ | ---- | ---- | ------------------------------ | | ------- | ------ | ---- | ---- | ------------------------------ |
| algName | string | 是 | 否 | 对称密钥生成器指定的算法名称。 | | algName | string | 是 | 否 | 对称密钥生成器指定的算法名称。 |
...@@ -1301,7 +1315,7 @@ generateSymKey(callback : AsyncCallback\<SymKey>) : void ...@@ -1301,7 +1315,7 @@ generateSymKey(callback : AsyncCallback\<SymKey>) : void
**参数:** **参数:**
| 名称 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | --------------------------------- | ---- | ------------------------------------------------------------ | | -------- | --------------------------------- | ---- | ------------------------------------------------------------ |
| callback | AsyncCallback\<[SymKey](#symkey)> | 是 | 回调函数。当生成对称密钥成功,err为undefined,data为获取到的SymKey;否则为错误对象。 | | callback | AsyncCallback\<[SymKey](#symkey)> | 是 | 回调函数。当生成对称密钥成功,err为undefined,data为获取到的SymKey;否则为错误对象。 |
...@@ -1370,7 +1384,7 @@ convertKey(key : DataBlob, callback : AsyncCallback\<SymKey>) : void ...@@ -1370,7 +1384,7 @@ convertKey(key : DataBlob, callback : AsyncCallback\<SymKey>) : void
**参数:** **参数:**
| 名称 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | --------------------------------- | ---- | ------------------------------------------------------------ | | -------- | --------------------------------- | ---- | ------------------------------------------------------------ |
| key | [DataBlob](#datablob) | 是 | 指定的对称密钥材料。 | | key | [DataBlob](#datablob) | 是 | 指定的对称密钥材料。 |
| callback | AsyncCallback\<[SymKey](#symkey)> | 是 | 回调函数。当生成对称密钥成功,err为undefined,data为获取到的SymKey;否则为错误对象。 | | callback | AsyncCallback\<[SymKey](#symkey)> | 是 | 回调函数。当生成对称密钥成功,err为undefined,data为获取到的SymKey;否则为错误对象。 |
...@@ -1417,7 +1431,7 @@ convertKey(key : DataBlob) : Promise\<SymKey> ...@@ -1417,7 +1431,7 @@ convertKey(key : DataBlob) : Promise\<SymKey>
**参数:** **参数:**
| 名称 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| ---- | --------------------- | ---- | -------------------- | | ---- | --------------------- | ---- | -------------------- |
| key | [DataBlob](#datablob) | 是 | 指定的密钥材料数据。 | | key | [DataBlob](#datablob) | 是 | 指定的密钥材料数据。 |
...@@ -1461,6 +1475,7 @@ symKeyGenerator.convertKey(keyMaterialBlob) ...@@ -1461,6 +1475,7 @@ symKeyGenerator.convertKey(keyMaterialBlob)
## cryptoFramework.createAsyKeyGenerator ## cryptoFramework.createAsyKeyGenerator
createAsyKeyGenerator(algName : string) : AsyKeyGenerator createAsyKeyGenerator(algName : string) : AsyKeyGenerator
通过指定算法名称的字符串,获取相应的非对称密钥生成器实例。 通过指定算法名称的字符串,获取相应的非对称密钥生成器实例。
**系统能力:** SystemCapability.Security.CryptoFramework **系统能力:** SystemCapability.Security.CryptoFramework
...@@ -1493,7 +1508,7 @@ let asyKeyGenerator = cryptoFramework.createAsyKeyGenerator("ECC256"); ...@@ -1493,7 +1508,7 @@ let asyKeyGenerator = cryptoFramework.createAsyKeyGenerator("ECC256");
**系统能力:** SystemCapability.Security.CryptoFramework **系统能力:** SystemCapability.Security.CryptoFramework
| 名称 | 类型 | 可读 | 可写 | 描述 | | 名称 | 类型 | 可读 | 可写 | 说明 |
| ------- | ------ | ---- | ---- | -------------------------------- | | ------- | ------ | ---- | ---- | -------------------------------- |
| algName | string | 是 | 否 | 非对称密钥生成器指定的算法名称。 | | algName | string | 是 | 否 | 非对称密钥生成器指定的算法名称。 |
...@@ -1507,7 +1522,7 @@ generateKeyPair(callback : AsyncCallback\<KeyPair>) : void; ...@@ -1507,7 +1522,7 @@ generateKeyPair(callback : AsyncCallback\<KeyPair>) : void;
**参数:** **参数:**
| 名称 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | ------------------------------ | | -------- | ----------------------- | ---- | ------------------------------ |
| callback | AsyncCallback\<KeyPair> | 是 | 回调函数,用于获取非对称密钥。 | | callback | AsyncCallback\<KeyPair> | 是 | 回调函数,用于获取非对称密钥。 |
...@@ -1565,7 +1580,7 @@ convertKey(pubKey : DataBlob, priKey : DataBlob, callback : AsyncCallback\<KeyPa ...@@ -1565,7 +1580,7 @@ convertKey(pubKey : DataBlob, priKey : DataBlob, callback : AsyncCallback\<KeyPa
**参数:** **参数:**
| 名称 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | ------------------------------ | | -------- | ----------------------- | ---- | ------------------------------ |
| pubKey | DataBlob | 否 | 指定的公钥材料。 | | pubKey | DataBlob | 否 | 指定的公钥材料。 |
| priKey | DataBlob | 否 | 指定的私钥材料。 | | priKey | DataBlob | 否 | 指定的私钥材料。 |
...@@ -1597,7 +1612,7 @@ convertKey(pubKey : DataBlob, priKey : DataBlob) : Promise\<KeyPair> ...@@ -1597,7 +1612,7 @@ convertKey(pubKey : DataBlob, priKey : DataBlob) : Promise\<KeyPair>
**参数:** **参数:**
| 名称 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| ------ | -------- | ---- | ---------------- | | ------ | -------- | ---- | ---------------- |
| pubKey | DataBlob | 否 | 指定的公钥材料。 | | pubKey | DataBlob | 否 | 指定的公钥材料。 |
| priKey | DataBlob | 否 | 指定的私钥材料。 | | priKey | DataBlob | 否 | 指定的私钥材料。 |
...@@ -1683,7 +1698,7 @@ try { ...@@ -1683,7 +1698,7 @@ try {
**系统能力:** SystemCapability.Security.CryptoFramework **系统能力:** SystemCapability.Security.CryptoFramework
| 名称 | 类型 | 可读 | 可写 | 描述 | | 名称 | 类型 | 可读 | 可写 | 说明 |
| ------- | ------ | ---- | ---- | ---------------------------- | | ------- | ------ | ---- | ---- | ---------------------------- |
| algName | string | 是 | 否 | 加解密生成器指定的算法名称。 | | algName | string | 是 | 否 | 加解密生成器指定的算法名称。 |
...@@ -1697,7 +1712,7 @@ init(opMode : CryptoMode, key : Key, params : ParamsSpec, callback : AsyncCallba ...@@ -1697,7 +1712,7 @@ init(opMode : CryptoMode, key : Key, params : ParamsSpec, callback : AsyncCallba
**参数:** **参数:**
| 名称 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------- | ---- | ------------------------------------------------------------ | | -------- | ------------------------- | ---- | ------------------------------------------------------------ |
| opMode | [CryptoMode](#cryptomode) | 是 | 加密或者解密模式。 | | opMode | [CryptoMode](#cryptomode) | 是 | 加密或者解密模式。 |
| key | [Key](#key) | 是 | 指定加密或解密的密钥。 | | key | [Key](#key) | 是 | 指定加密或解密的密钥。 |
...@@ -1739,7 +1754,7 @@ init(opMode : CryptoMode, key : Key, params : ParamsSpec) : Promise\<void> ...@@ -1739,7 +1754,7 @@ init(opMode : CryptoMode, key : Key, params : ParamsSpec) : Promise\<void>
**参数:** **参数:**
| 名称 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| ------ | ------------------------- | ---- | ------------------------------------------------------------ | | ------ | ------------------------- | ---- | ------------------------------------------------------------ |
| opMode | [CryptoMode](#cryptomode) | 是 | 加密或者解密模式。 | | opMode | [CryptoMode](#cryptomode) | 是 | 加密或者解密模式。 |
| key | [Key](#key) | 是 | 指定加密或解密的密钥。 | | key | [Key](#key) | 是 | 指定加密或解密的密钥。 |
...@@ -1789,7 +1804,7 @@ update(data : DataBlob, callback : AsyncCallback\<DataBlob>) : void ...@@ -1789,7 +1804,7 @@ update(data : DataBlob, callback : AsyncCallback\<DataBlob>) : void
**参数:** **参数:**
| 名称 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------- | ---- | ------------------------------------------------------------ | | -------- | ------------------------------------- | ---- | ------------------------------------------------------------ |
| data | [DataBlob](#datablob) | 是 | 加密或者解密的数据。data不能为null,也不允许传入{data : Uint8Array(空) } | | data | [DataBlob](#datablob) | 是 | 加密或者解密的数据。data不能为null,也不允许传入{data : Uint8Array(空) } |
| callback | AsyncCallback\<[DataBlob](#datablob)> | 是 | 回调函数。当更新加/解密数据成功,err为undefined,data为此次更新的加/解密结果DataBlob;否则为错误对象。 | | callback | AsyncCallback\<[DataBlob](#datablob)> | 是 | 回调函数。当更新加/解密数据成功,err为undefined,data为此次更新的加/解密结果DataBlob;否则为错误对象。 |
...@@ -1846,7 +1861,7 @@ update(data : DataBlob) : Promise\<DataBlob> ...@@ -1846,7 +1861,7 @@ update(data : DataBlob) : Promise\<DataBlob>
**参数:** **参数:**
| 名称 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| ---- | --------------------- | ---- | -------------------- | | ---- | --------------------- | ---- | -------------------- |
| data | [DataBlob](#datablob) | 是 | 加密或者解密的数据。data不能为null,也不允许传入{data : Uint8Array(空) } | | data | [DataBlob](#datablob) | 是 | 加密或者解密的数据。data不能为null,也不允许传入{data : Uint8Array(空) } |
...@@ -1911,7 +1926,7 @@ doFinal(data : DataBlob, callback : AsyncCallback\<DataBlob>) : void ...@@ -1911,7 +1926,7 @@ doFinal(data : DataBlob, callback : AsyncCallback\<DataBlob>) : void
**参数:** **参数:**
| 名称 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------- | ---- | ------------------------------------------------------------ | | -------- | ------------------------------------- | ---- | ------------------------------------------------------------ |
| data | [DataBlob](#datablob) | 是 | 加密或者解密的数据。在对称加解密中允许为null,但不允许传入{data : Uint8Array(空) }。 | | data | [DataBlob](#datablob) | 是 | 加密或者解密的数据。在对称加解密中允许为null,但不允许传入{data : Uint8Array(空) }。 |
| callback | AsyncCallback\<[DataBlob](#datablob)> | 是 | 回调函数。当最终加/解密数据成功,err为undefined,data为剩余数据的加/解密结果DataBlob;否则为错误对象。 | | callback | AsyncCallback\<[DataBlob](#datablob)> | 是 | 回调函数。当最终加/解密数据成功,err为undefined,data为剩余数据的加/解密结果DataBlob;否则为错误对象。 |
...@@ -1963,7 +1978,7 @@ doFinal(data : DataBlob) : Promise\<DataBlob> ...@@ -1963,7 +1978,7 @@ doFinal(data : DataBlob) : Promise\<DataBlob>
**参数:** **参数:**
| 名称 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| ---- | --------------------- | ---- | -------------------- | | ---- | --------------------- | ---- | -------------------- |
| data | [DataBlob](#datablob) | 是 | 加密或者解密的数据。data参数允许为null,但不允许传入{data : Uint8Array(空) } | | data | [DataBlob](#datablob) | 是 | 加密或者解密的数据。data参数允许为null,但不允许传入{data : Uint8Array(空) } |
...@@ -2104,7 +2119,7 @@ init(priKey : PriKey, callback : AsyncCallback\<void>) : void ...@@ -2104,7 +2119,7 @@ init(priKey : PriKey, callback : AsyncCallback\<void>) : void
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------------------- | ---- | ---------------- | | -------- | -------------------- | ---- | ---------------- |
| priKey | Key | 是 | 用于Sign的初始化 | | priKey | PriKey | 是 | 用于Sign的初始化 |
| callback | AsyncCallback\<void> | 是 | 回调函数的 | | callback | AsyncCallback\<void> | 是 | 回调函数的 |
### init ### init
...@@ -2119,7 +2134,7 @@ init(opMode : CryptoMode, key : Key, params : ParamsSpec) : Promise\<void> ...@@ -2119,7 +2134,7 @@ init(opMode : CryptoMode, key : Key, params : ParamsSpec) : Promise\<void>
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| ------ | ---- | ---- | ---------------- | | ------ | ---- | ---- | ---------------- |
| priKey | Key | 是 | 用于Sign的初始化 | | priKey | PriKey | 是 | 用于Sign的初始化 |
**返回值:** **返回值:**
...@@ -2175,7 +2190,7 @@ sign(data : DataBlob, callback : AsyncCallback\<DataBlob>) : void ...@@ -2175,7 +2190,7 @@ sign(data : DataBlob, callback : AsyncCallback\<DataBlob>) : void
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------------------- | ---- | ---------- | | -------- | -------------------- | ---- | ---------- |
| data | DataBlob | 是 | 传入的消息 | | data | DataBlob | 是 | 传入的消息 |
| callback | AsyncCallback\<void> | 是 | 回调函数 | | callback | AsyncCallback\<DataBlob> | 是 | 回调函数 |
### sign ### sign
...@@ -2323,7 +2338,7 @@ init(pubKey : PubKey, callback : AsyncCallback\<void>) : void ...@@ -2323,7 +2338,7 @@ init(pubKey : PubKey, callback : AsyncCallback\<void>) : void
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------------------- | ---- | ---------------------------- | | -------- | -------------------- | ---- | ---------------------------- |
| pubKey | Key | 是 | 公钥对象,用于Verify的初始化 | | pubKey | PubKey | 是 | 公钥对象,用于Verify的初始化 |
| callback | AsyncCallback\<void> | 是 | 回调函数 | | callback | AsyncCallback\<void> | 是 | 回调函数 |
### init ### init
...@@ -2338,7 +2353,7 @@ init(pubKey : PubKey) : Promise\<void> ...@@ -2338,7 +2353,7 @@ init(pubKey : PubKey) : Promise\<void>
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| ------ | ---- | ---- | ---------------------------- | | ------ | ---- | ---- | ---------------------------- |
| pubKey | Key | 是 | 公钥对象,用于Verify的初始化 | | pubKey | PubKey | 是 | 公钥对象,用于Verify的初始化 |
**返回值:** **返回值:**
...@@ -2395,7 +2410,7 @@ verify(data : DataBlob, signatureData : DataBlob, callback : AsyncCallback\<bool ...@@ -2395,7 +2410,7 @@ verify(data : DataBlob, signatureData : DataBlob, callback : AsyncCallback\<bool
| ------------- | -------------------- | ---- | ---------- | | ------------- | -------------------- | ---- | ---------- |
| data | DataBlob | 是 | 传入的消息 | | data | DataBlob | 是 | 传入的消息 |
| signatureData | DataBlob | 是 | 签名数据 | | signatureData | DataBlob | 是 | 签名数据 |
| callback | AsyncCallback\<void> | 是 | 回调函数 | | callback | AsyncCallback\<boolean> | 是 | 回调函数 |
### verify ### verify
...@@ -2612,8 +2627,8 @@ createX509Cert(inStream : EncodingBlob) : Promise\<X509Cert> ...@@ -2612,8 +2627,8 @@ createX509Cert(inStream : EncodingBlob) : Promise\<X509Cert>
**返回值** **返回值**
| 类型 | 说明 | | 类型 | 说明 |
| :------- | ---------------- | | ------- | ---------------- |
| X509Cert | 表示X509证书对象 | | Promise\<X509Cert> | 表示X509证书对象 |
**示例** **示例**
...@@ -4569,6 +4584,16 @@ let validator = cryptoFramework.createCertChainValidator("PKIX"); ...@@ -4569,6 +4584,16 @@ let validator = cryptoFramework.createCertChainValidator("PKIX");
证书链校验器对象。 证书链校验器对象。
### 属性
**系统能力:** SystemCapability.Security.CryptoFramework
| 名称 | 类型 | 可读 | 可写 | 说明 |
| ------- | ------ | ---- | ---- | -------------------------- |
| algorithm | string | 是 | 否 | X509证书链校验器算法名称。 |
### validate ### validate
validate(certChain : CertChainData, callback : AsyncCallback\<void>) : void validate(certChain : CertChainData, callback : AsyncCallback\<void>) : void
...@@ -4655,19 +4680,6 @@ validator.validate(certChainData).then(result => { ...@@ -4655,19 +4680,6 @@ validator.validate(certChainData).then(result => {
}); });
``` ```
### algorithm
algorithm : string
表示X509证书链校验器算法名称。
**系统能力**:SystemCapability.Security.CryptoFramework
**返回值**
| 类型 | 说明 |
| ------ | ------------------------ |
| string | 表示证书链校验器算法名称 |
**示例** **示例**
......
...@@ -9,7 +9,6 @@ ...@@ -9,7 +9,6 @@
使用前根据具体情况引入如下模块 使用前根据具体情况引入如下模块
``` ```
import featureAbility from '@ohos.ability.featureAbility'
import ohos_data_ability from '@ohos.data.dataAbility' import ohos_data_ability from '@ohos.data.dataAbility'
import ohos_data_rdb from '@ohos.data.rdb' import ohos_data_rdb from '@ohos.data.rdb'
``` ```
...@@ -24,11 +23,11 @@ openFile(uri: string, mode: string, callback: AsyncCallback\<number>): void ...@@ -24,11 +23,11 @@ openFile(uri: string, mode: string, callback: AsyncCallback\<number>): void
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ---------------------- | ---- | ---------------------------------- | | -------- | ---------------------- | ---- | ---------------------------------- |
| uri | string | 是 | 指示要打开的文件的路径。 | | uri | string | 是 | 指示要打开的文件的路径。 |
| mode | string | 是 | 指示文件打开模式‘rwt’。 | | mode | string | 是 | 指示文件打开模式‘rwt’。 |
| callback | AsyncCallback\<number> | 是 | 被指定的回调方法,返回文件描述符。 | | callback | AsyncCallback\<number> | 是 | 被指定的回调方法,返回文件说明符。 |
**示例:** **示例:**
...@@ -56,7 +55,7 @@ openFile(uri: string, mode: string): Promise\<number> ...@@ -56,7 +55,7 @@ openFile(uri: string, mode: string): Promise\<number>
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| ---- | ------ | ---- | ------------------------ | | ---- | ------ | ---- | ------------------------ |
| uri | string | 是 | 指示要打开的文件的路径。 | | uri | string | 是 | 指示要打开的文件的路径。 |
| mode | string | 是 | 指示文件打开模式‘rwt’。 | | mode | string | 是 | 指示文件打开模式‘rwt’。 |
...@@ -65,7 +64,7 @@ openFile(uri: string, mode: string): Promise\<number> ...@@ -65,7 +64,7 @@ openFile(uri: string, mode: string): Promise\<number>
| 类型 | 说明 | | 类型 | 说明 |
| ---------------- | ---------------- | | ---------------- | ---------------- |
| Promise\<number> | 返回文件描述符。 | | Promise\<number> | 返回文件说明符。 |
**示例:** **示例:**
...@@ -92,7 +91,7 @@ on(type: 'dataChange', uri: string, callback: AsyncCallback\<void>): void ...@@ -92,7 +91,7 @@ on(type: 'dataChange', uri: string, callback: AsyncCallback\<void>): void
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------------------- | ---- | ------------------------ | | -------- | -------------------- | ---- | ------------------------ |
| type | string | 是 | 数据更改。 | | type | string | 是 | 数据更改。 |
| uri | string | 是 | 指示要操作的数据的路径。 | | uri | string | 是 | 指示要操作的数据的路径。 |
...@@ -125,7 +124,7 @@ off(type: 'dataChange', uri: string, callback?: AsyncCallback\<void>): void ...@@ -125,7 +124,7 @@ off(type: 'dataChange', uri: string, callback?: AsyncCallback\<void>): void
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------------------- | ---- | ------------------------ | | -------- | -------------------- | ---- | ------------------------ |
| type | string | 是 | 数据更改。 | | type | string | 是 | 数据更改。 |
| uri | string | 是 | 指示要操作的数据的路径。 | | uri | string | 是 | 指示要操作的数据的路径。 |
...@@ -162,7 +161,7 @@ getType(uri: string, callback: AsyncCallback\<string>): void ...@@ -162,7 +161,7 @@ getType(uri: string, callback: AsyncCallback\<string>): void
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ---------------------- | ---- | --------------------------------------------- | | -------- | ---------------------- | ---- | --------------------------------------------- |
| uri | string | 是 | 指示要操作的数据的路径。 | | uri | string | 是 | 指示要操作的数据的路径。 |
| callback | AsyncCallback\<string> | 是 | 回调方法,返回与uri指定的数据匹配的MIME类型。 | | callback | AsyncCallback\<string> | 是 | 回调方法,返回与uri指定的数据匹配的MIME类型。 |
...@@ -191,7 +190,7 @@ getType(uri: string): Promise\<string> ...@@ -191,7 +190,7 @@ getType(uri: string): Promise\<string>
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| ---- | ------ | ---- | ------------------------ | | ---- | ------ | ---- | ------------------------ |
| uri | string | 是 | 指示要操作的数据的路径。 | | uri | string | 是 | 指示要操作的数据的路径。 |
...@@ -225,7 +224,7 @@ getFileTypes(uri: string, mimeTypeFilter: string, callback: AsyncCallback<Array\ ...@@ -225,7 +224,7 @@ getFileTypes(uri: string, mimeTypeFilter: string, callback: AsyncCallback<Array\
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| -------------- | ------------------------------ | ---- | ---------------------------------- | | -------------- | ------------------------------ | ---- | ---------------------------------- |
| uri | string | 是 | 指示要获取的文件的路径。 | | uri | string | 是 | 指示要获取的文件的路径。 |
| mimeTypeFilter | string | 是 | 指示要获取的文件的MIME类型。 | | mimeTypeFilter | string | 是 | 指示要获取的文件的MIME类型。 |
...@@ -258,7 +257,7 @@ getFileTypes(uri: string, mimeTypeFilter: string): Promise\<Array\<string>> ...@@ -258,7 +257,7 @@ getFileTypes(uri: string, mimeTypeFilter: string): Promise\<Array\<string>>
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| -------------- | ------ | ---- | ---------------------------- | | -------------- | ------ | ---- | ---------------------------- |
| uri | string | 是 | 指示要获取的文件的路径。 | | uri | string | 是 | 指示要获取的文件的路径。 |
| mimeTypeFilter | string | 是 | 指示要获取的文件的MIME类型。 | | mimeTypeFilter | string | 是 | 指示要获取的文件的MIME类型。 |
...@@ -294,7 +293,7 @@ normalizeUri(uri: string, callback: AsyncCallback\<string>): void ...@@ -294,7 +293,7 @@ normalizeUri(uri: string, callback: AsyncCallback\<string>): void
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ---------------------- | ---- | ------------------------------------------------------------ | | -------- | ---------------------- | ---- | ------------------------------------------------------------ |
| uri | string | 是 | 指示要规范化的uri对象。 | | uri | string | 是 | 指示要规范化的uri对象。 |
| callback | AsyncCallback\<string> | 是 | 回调方法。如果数据功能支持uri规范化,则返回规范化uri对象;否则返回null。 | | callback | AsyncCallback\<string> | 是 | 回调方法。如果数据功能支持uri规范化,则返回规范化uri对象;否则返回null。 |
...@@ -323,7 +322,7 @@ normalizeUri(uri: string): Promise\<string> ...@@ -323,7 +322,7 @@ normalizeUri(uri: string): Promise\<string>
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| ---- | ------ | ---- | ----------------------- | | ---- | ------ | ---- | ----------------------- |
| uri | string | 是 | 指示要规范化的uri对象。 | | uri | string | 是 | 指示要规范化的uri对象。 |
...@@ -357,7 +356,7 @@ denormalizeUri(uri: string, callback: AsyncCallback\<string>): void ...@@ -357,7 +356,7 @@ denormalizeUri(uri: string, callback: AsyncCallback\<string>): void
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ---------------------- | ---- | --------------------------------------------------- | | -------- | ---------------------- | ---- | --------------------------------------------------- |
| uri | string | 是 | 指示要规范化的uri对象。 | | uri | string | 是 | 指示要规范化的uri对象。 |
| callback | AsyncCallback\<string> | 是 | 回调方法。如果反规范化成功,则返回反规范化uri对象。 | | callback | AsyncCallback\<string> | 是 | 回调方法。如果反规范化成功,则返回反规范化uri对象。 |
...@@ -388,7 +387,7 @@ denormalizeUri(uri: string): Promise\<string> ...@@ -388,7 +387,7 @@ denormalizeUri(uri: string): Promise\<string>
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| ---- | ------ | ---- | ----------------------- | | ---- | ------ | ---- | ----------------------- |
| uri | string | 是 | 指示要规范化的uri对象。 | | uri | string | 是 | 指示要规范化的uri对象。 |
...@@ -422,7 +421,7 @@ notifyChange(uri: string, callback: AsyncCallback\<void>): void ...@@ -422,7 +421,7 @@ notifyChange(uri: string, callback: AsyncCallback\<void>): void
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------------------- | ---- | ------------------------ | | -------- | -------------------- | ---- | ------------------------ |
| uri | string | 是 | 指示要操作的数据的路径。 | | uri | string | 是 | 指示要操作的数据的路径。 |
| callback | AsyncCallback\<void> | 是 | 回调方法。 | | callback | AsyncCallback\<void> | 是 | 回调方法。 |
...@@ -451,7 +450,7 @@ notifyChange(uri: string): Promise\<void> ...@@ -451,7 +450,7 @@ notifyChange(uri: string): Promise\<void>
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| ---- | ------ | ---- | ------------------------ | | ---- | ------ | ---- | ------------------------ |
| uri | string | 是 | 指示要操作的数据的路径。 | | uri | string | 是 | 指示要操作的数据的路径。 |
...@@ -485,7 +484,7 @@ insert(uri: string, valuesBucket: rdb.ValuesBucket, callback: AsyncCallback\<num ...@@ -485,7 +484,7 @@ insert(uri: string, valuesBucket: rdb.ValuesBucket, callback: AsyncCallback\<num
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| ------------ | ---------------------- | ---- | ------------------------------------------------------ | | ------------ | ---------------------- | ---- | ------------------------------------------------------ |
| uri | string | 是 | 指示要插入的数据的路径。 | | uri | string | 是 | 指示要插入的数据的路径。 |
| valuesBucket | rdb.ValuesBucket | 是 | 指示要插入的数据记录。如果此参数为空,将插入一个空行。 | | valuesBucket | rdb.ValuesBucket | 是 | 指示要插入的数据记录。如果此参数为空,将插入一个空行。 |
...@@ -522,7 +521,7 @@ insert(uri: string, valuesBucket: rdb.ValuesBucket): Promise\<number> ...@@ -522,7 +521,7 @@ insert(uri: string, valuesBucket: rdb.ValuesBucket): Promise\<number>
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| ------------ | ---------------- | ---- | ------------------------------------------------------ | | ------------ | ---------------- | ---- | ------------------------------------------------------ |
| uri | string | 是 | 指示要插入的数据的路径。 | | uri | string | 是 | 指示要插入的数据的路径。 |
| valuesBucket | rdb.ValuesBucket | 是 | 指示要插入的数据记录。如果此参数为空,将插入一个空行。 | | valuesBucket | rdb.ValuesBucket | 是 | 指示要插入的数据记录。如果此参数为空,将插入一个空行。 |
...@@ -564,7 +563,7 @@ batchInsert(uri: string, valuesBuckets: Array<rdb.ValuesBucket>, callback: Async ...@@ -564,7 +563,7 @@ batchInsert(uri: string, valuesBuckets: Array<rdb.ValuesBucket>, callback: Async
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| ------------ | ----------------------- | ---- | -------------------------------- | | ------------ | ----------------------- | ---- | -------------------------------- |
| uri | string | 是 | 指示要插入的数据的路径。 | | uri | string | 是 | 指示要插入的数据的路径。 |
| valuesBucket | Array<rdb.ValuesBucket> | 是 | 指示要插入的数据记录。 | | valuesBucket | Array<rdb.ValuesBucket> | 是 | 指示要插入的数据记录。 |
...@@ -598,7 +597,7 @@ batchInsert(uri: string, valuesBuckets: Array<rdb.ValuesBucket>): Promise\<numbe ...@@ -598,7 +597,7 @@ batchInsert(uri: string, valuesBuckets: Array<rdb.ValuesBucket>): Promise\<numbe
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| ------------ | ----------------------- | ---- | ------------------------ | | ------------ | ----------------------- | ---- | ------------------------ |
| uri | string | 是 | 指示要插入的数据的路径。 | | uri | string | 是 | 指示要插入的数据的路径。 |
| valuesBucket | Array<rdb.ValuesBucket> | 是 | 指示要插入的数据记录。 | | valuesBucket | Array<rdb.ValuesBucket> | 是 | 指示要插入的数据记录。 |
...@@ -637,7 +636,7 @@ delete(uri: string, predicates: dataAbility.DataAbilityPredicates, callback: Asy ...@@ -637,7 +636,7 @@ delete(uri: string, predicates: dataAbility.DataAbilityPredicates, callback: Asy
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| ------------ | --------------------------------- | ---- | ------------------------------------------------ | | ------------ | --------------------------------- | ---- | ------------------------------------------------ |
| uri | string | 是 | 指示要删除的数据的路径。 | | uri | string | 是 | 指示要删除的数据的路径。 |
| valuesBucket | dataAbility.DataAbilityPredicates | 是 | 指示筛选条件。当此参数为null时,应定义处理逻辑。 | | valuesBucket | dataAbility.DataAbilityPredicates | 是 | 指示筛选条件。当此参数为null时,应定义处理逻辑。 |
...@@ -670,7 +669,7 @@ delete(uri: string, predicates?: dataAbility.DataAbilityPredicates): Promise\<nu ...@@ -670,7 +669,7 @@ delete(uri: string, predicates?: dataAbility.DataAbilityPredicates): Promise\<nu
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| ------------ | --------------------------------- | ---- | ------------------------------------------------ | | ------------ | --------------------------------- | ---- | ------------------------------------------------ |
| uri | string | 是 | 指示要删除的数据的路径。 | | uri | string | 是 | 指示要删除的数据的路径。 |
| valuesBucket | dataAbility.DataAbilityPredicates | 是 | 指示筛选条件。当此参数为null时,应定义处理逻辑。 | | valuesBucket | dataAbility.DataAbilityPredicates | 是 | 指示筛选条件。当此参数为null时,应定义处理逻辑。 |
...@@ -708,7 +707,7 @@ update(uri: string, valuesBucket: rdb.ValuesBucket, predicates: dataAbility.Data ...@@ -708,7 +707,7 @@ update(uri: string, valuesBucket: rdb.ValuesBucket, predicates: dataAbility.Data
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| ------------ | --------------------------------- | ---- | ------------------------------------------------ | | ------------ | --------------------------------- | ---- | ------------------------------------------------ |
| uri | string | 是 | 指示要更新的数据的路径。 | | uri | string | 是 | 指示要更新的数据的路径。 |
| valuesBucket | rdb.ValuesBucket | 是 | 指示要更新的数据。 | | valuesBucket | rdb.ValuesBucket | 是 | 指示要更新的数据。 |
...@@ -749,7 +748,7 @@ update(uri: string, valuesBucket: rdb.ValuesBucket, predicates?: dataAbility.Dat ...@@ -749,7 +748,7 @@ update(uri: string, valuesBucket: rdb.ValuesBucket, predicates?: dataAbility.Dat
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| ------------ | --------------------------------- | ---- | ------------------------------------------------ | | ------------ | --------------------------------- | ---- | ------------------------------------------------ |
| uri | string | 是 | 指示要更新的数据的路径。 | | uri | string | 是 | 指示要更新的数据的路径。 |
| valuesBucket | rdb.ValuesBucket | 是 | 指示要更新的数据。 | | valuesBucket | rdb.ValuesBucket | 是 | 指示要更新的数据。 |
...@@ -795,7 +794,7 @@ query(uri: string, columns: Array\<string>, predicates: dataAbility.DataAbilityP ...@@ -795,7 +794,7 @@ query(uri: string, columns: Array\<string>, predicates: dataAbility.DataAbilityP
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| ---------- | --------------------------------- | ---- | ------------------------------------------------ | | ---------- | --------------------------------- | ---- | ------------------------------------------------ |
| uri | string | 是 | 指示要查询的数据的路径。 | | uri | string | 是 | 指示要查询的数据的路径。 |
| columns | rdb.ValuesBucket | 是 | 指示要查询的列。如果此参数为空,则查询所有列。 | | columns | rdb.ValuesBucket | 是 | 指示要查询的列。如果此参数为空,则查询所有列。 |
...@@ -833,7 +832,7 @@ query(uri: string, columns?: Array\<string>, predicates?: dataAbility.DataAbilit ...@@ -833,7 +832,7 @@ query(uri: string, columns?: Array\<string>, predicates?: dataAbility.DataAbilit
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| ---------- | --------------------------------- | ---- | ------------------------------------------------ | | ---------- | --------------------------------- | ---- | ------------------------------------------------ |
| uri | string | 是 | 指示要查询的数据的路径。 | | uri | string | 是 | 指示要查询的数据的路径。 |
| columns | rdb.ValuesBucket | 是 | 指示要查询的列。如果此参数为空,则查询所有列。 | | columns | rdb.ValuesBucket | 是 | 指示要查询的列。如果此参数为空,则查询所有列。 |
...@@ -874,7 +873,7 @@ call(uri: string, method: string, arg: string, extras: PacMap): Promise\<PacMap> ...@@ -874,7 +873,7 @@ call(uri: string, method: string, arg: string, extras: PacMap): Promise\<PacMap>
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| ---------- | --------------------------------- | ---- | ------------------------------------------------ | | ---------- | --------------------------------- | ---- | ------------------------------------------------ |
| uri | string | 是 | 指定待处理的DataAbility。例:"dataability:///com.example.xxx.xxxx" | | uri | string | 是 | 指定待处理的DataAbility。例:"dataability:///com.example.xxx.xxxx" |
| method | string | 是 | 被调用的方法名。 | | method | string | 是 | 被调用的方法名。 |
...@@ -910,7 +909,7 @@ call(uri: string, method: string, arg: string, extras: PacMap, callback: AsyncCa ...@@ -910,7 +909,7 @@ call(uri: string, method: string, arg: string, extras: PacMap, callback: AsyncCa
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| ---------- | --------------------------------- | ---- | ------------------------------------------------ | | ---------- | --------------------------------- | ---- | ------------------------------------------------ |
| uri | string | 是 | 指定待处理的DataAbility。例:"dataability:///com.example.xxx.xxxx" | | uri | string | 是 | 指定待处理的DataAbility。例:"dataability:///com.example.xxx.xxxx" |
| method | string | 是 | 被调用的方法名。 | | method | string | 是 | 被调用的方法名。 |
...@@ -943,7 +942,7 @@ executeBatch(uri: string, operations: Array\<DataAbilityOperation>, callback: As ...@@ -943,7 +942,7 @@ executeBatch(uri: string, operations: Array\<DataAbilityOperation>, callback: As
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| ---------- | --------------------------------- | ---- | ------------------------------------------------ | | ---------- | --------------------------------- | ---- | ------------------------------------------------ |
| uri | string | 是 | 指定待处理的DataAbility。例:"dataability:///com.example.xxx.xxxx"。| | uri | string | 是 | 指定待处理的DataAbility。例:"dataability:///com.example.xxx.xxxx"。|
| operations | Array\<[DataAbilityOperation](#dataabilityoperation)> | 是 | 指示数据操作列表,其中可以包含对数据库的多个操作。 | | operations | Array\<[DataAbilityOperation](#dataabilityoperation)> | 是 | 指示数据操作列表,其中可以包含对数据库的多个操作。 |
...@@ -976,7 +975,7 @@ executeBatch(uri: string, operations: Array\<DataAbilityOperation>): Promise\<Ar ...@@ -976,7 +975,7 @@ executeBatch(uri: string, operations: Array\<DataAbilityOperation>): Promise\<Ar
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| ---------- | -------------------------------| ---- | ------------------------------------------------ | | ---------- | -------------------------------| ---- | ------------------------------------------------ |
| uri | string | 是 | 指定待处理的DataAbility。例:"dataability:///com.example.xxx.xxxx"。| | uri | string | 是 | 指定待处理的DataAbility。例:"dataability:///com.example.xxx.xxxx"。|
| operations | Array\<[DataAbilityOperation](#dataabilityoperation)> | 是 | 指示数据操作列表,其中可以包含对数据库的多个操作。 | | operations | Array\<[DataAbilityOperation](#dataabilityoperation)> | 是 | 指示数据操作列表,其中可以包含对数据库的多个操作。 |
...@@ -1009,7 +1008,7 @@ dataAbilityHelper.executeBatch("dataability:///com.example.jsapidemo.UserDataAbi ...@@ -1009,7 +1008,7 @@ dataAbilityHelper.executeBatch("dataability:///com.example.jsapidemo.UserDataAbi
**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel **系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel
| 名称 | 参数类型 | 必填 | 说明 | | 参数名 | 参数类型 | 必填 | 说明 |
| ------ | ------ | ------ | ------ | | ------ | ------ | ------ | ------ |
| [key: string] | number \| string \| boolean \| Array\<string \| number \| boolean\> \| null | Yes| 数据存储在键值对中。| | [key: string] | number \| string \| boolean \| Array\<string \| number \| boolean\> \| null | Yes| 数据存储在键值对中。|
...@@ -1017,7 +1016,7 @@ dataAbilityHelper.executeBatch("dataability:///com.example.jsapidemo.UserDataAbi ...@@ -1017,7 +1016,7 @@ dataAbilityHelper.executeBatch("dataability:///com.example.jsapidemo.UserDataAbi
**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.FAModel **系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.FAModel
| 名称 | 参数类型 | 可读 | 可写 | 必填| 说明 | | 名称 | 类型 | 可读 | 可写 | 必填| 说明 |
| -------- | -------- | -------- | -------- | --------| -------- | | -------- | -------- | -------- | -------- | --------| -------- |
| uri | string | 是 | 否 | 是 | 指定待处理的DataAbility。例:"dataability:///com.example.xxx.xxxx"。 | | uri | string | 是 | 否 | 是 | 指定待处理的DataAbility。例:"dataability:///com.example.xxx.xxxx"。 |
| type | featureAbility.DataAbilityOperationType | 是 | 否 | 是 | 指示操作类型。 | | type | featureAbility.DataAbilityOperationType | 是 | 否 | 是 | 指示操作类型。 |
...@@ -1032,7 +1031,7 @@ dataAbilityHelper.executeBatch("dataability:///com.example.jsapidemo.UserDataAbi ...@@ -1032,7 +1031,7 @@ dataAbilityHelper.executeBatch("dataability:///com.example.jsapidemo.UserDataAbi
**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.FAModel **系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.FAModel
| 名称 | 参数类型 | 可读 | 可写 | 必填 | 说明 | | 名称 | 类型 | 可读 | 可写 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- | -------- | -------- |
| uri? | string | 是 | 否 | 否 | 指定待处理的DataAbility。例:"dataability:///com.example.xxx.xxxx"。 | | uri? | string | 是 | 否 | 否 | 指定待处理的DataAbility。例:"dataability:///com.example.xxx.xxxx"。 |
| count? | number | 是 | 否 | 否 | 指示受操作影响的行数。 | | count? | number | 是 | 否 | 否 | 指示受操作影响的行数。 |
\ No newline at end of file
...@@ -2955,7 +2955,7 @@ get(key: string, callback: AsyncCallback&lt;Uint8Array | string | boolean | numb ...@@ -2955,7 +2955,7 @@ get(key: string, callback: AsyncCallback&lt;Uint8Array | string | boolean | numb
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| ----- | ------ | ---- | ----------------------- | | ----- | ------ | ---- | ----------------------- |
| key |string | 是 |要查询数据的key,不能为空且长度不大于[MAX_KEY_LENGTH](#constants)。 | | key |string | 是 |要查询数据的key,不能为空且长度不大于[MAX_KEY_LENGTH](#constants)。 |
| callback |AsyncCallback&lt;Uint8Array \| string \| boolean \| number&gt;) | 是 |回调函数。返回获取查询的值。 | | callback |AsyncCallback&lt;Uint8Array \| string \| boolean \| number&gt; | 是 |回调函数。返回获取查询的值。 |
**示例:** **示例:**
......
...@@ -2941,7 +2941,7 @@ get(key: string, callback: AsyncCallback<boolean | string| number | Uint8Array>) ...@@ -2941,7 +2941,7 @@ get(key: string, callback: AsyncCallback<boolean | string| number | Uint8Array>)
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| ----- | ------ | ---- | ----------------------- | | ----- | ------ | ---- | ----------------------- |
| key |string | 是 |要查询数据的key,不能为空且长度不大于[MAX_KEY_LENGTH](#constants)。 | | key |string | 是 |要查询数据的key,不能为空且长度不大于[MAX_KEY_LENGTH](#constants)。 |
| callback |AsyncCallback&lt;boolean \| string \| number \| Uint8Array&gt;) | 是 |回调函数。返回获取查询的值。 | | callback |AsyncCallback&lt;boolean \| string \| number \| Uint8Array&gt; | 是 |回调函数。返回获取查询的值。 |
**错误码:** **错误码:**
......
# 企业设备信息管理
本模块提供企业设备信息管理能力,包括获取设备序列号等。仅企业设备管理员应用才能调用。
> **说明:**
>
> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
## 导入模块
```js
import deviceInfo from '@ohos.enterprise.deviceInfo';
```
## deviceInfo.getDeviceSerial
getDeviceSerial(admin: Want, callback: AsyncCallback<string>): void
获取设备序列号,使用callback形式返回设备序列号。
**需要权限:** ohos.permission.ENTERPRISE_GET_DEVICE_INFO
**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
**系统API**: 此接口为系统接口。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ---------------------------------------- | ---- | ------------------------------- |
| admin | [Want](js-apis-application-Want.md) | 是 | 设备管理员应用 |
| callback | AsyncCallback&lt;string&gt; | 是 | callback方式返回设备序列号 |
**错误码**
以下的错误码的详细介绍请参见[企业设备管理错误码](../errorcodes/errorcode-enterpriseDeviceManager.md)
| 类型 | 说明 |
| ------- | ---------------------------------------------------------------------------- |
| 9200001 | The application is not a administrator of the device. |
| 9200002 | the administrator application does not have permission to manage the device. |
**示例:**
```js
let wantTemp = {
bundleName: "com.example.myapplication",
abilityName: "com.example.myapplication.MainAbility",
};
deviceInfo.getDeviceSerial(wantTemp, (error, result) => {
if (error != null) {
console.log("error code:" + error.code + " error message:" + error.message);
return;
}
console.log(result);
});
```
## deviceInfo.getDeviceSerial
getDeviceSerial(admin: Want, callback: AsyncCallback<string>): void
获取设备序列号,使用callback形式返回设备序列号。
**需要权限:** ohos.permission.ENTERPRISE_GET_DEVICE_INFO
**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
**系统API**: 此接口为系统接口。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----- | ----------------------------------- | ---- | ------- |
| admin | [Want](js-apis-application-Want.md) | 是 | 设备管理员应用 |
**返回值:**
| 类型 | 说明 |
| --------------------- | ------------------------- |
| Promise&lt;string&gt; | Promise方式返回设备序列号 |
**错误码**
以下的错误码的详细介绍请参见[企业设备管理错误码](../errorcodes/errorcode-enterpriseDeviceManager.md)
| 类型 | 说明 |
| ------- | ---------------------------------------------------------------------------- |
| 9200001 | The application is not a administrator of the device. |
| 9200002 | the administrator application does not have permission to manage the device. |
**示例:**
```js
let wantTemp = {
bundleName: "com.example.myapplication",
abilityName: "com.example.myapplication.MainAbility",
};
deviceInfo.getDeviceSerial(wantTemp).then((result) => {
console.log(result);
}).catch(error => {
console.log("error code:" + error.code + " error message:" + error.message);
});
```
\ No newline at end of file
...@@ -23,7 +23,6 @@ export default class MainAbility extends Ability { ...@@ -23,7 +23,6 @@ export default class MainAbility extends Ability {
} }
``` ```
## EventHub.on ## EventHub.on
on(event: string, callback: Function): void; on(event: string, callback: Function): void;
......
...@@ -12,9 +12,9 @@ import faultLogger from '@ohos.faultLogger' ...@@ -12,9 +12,9 @@ import faultLogger from '@ohos.faultLogger'
故障类型枚举。 故障类型枚举。
**系统能力:** 以下各项对应的系统能力均为SystemCapability.HiviewDFX.Hiview.FaultLogger。 **系统能力:** SystemCapability.HiviewDFX.Hiview.FaultLogger
| 名称 | 默认值 | 说明 | | 名称 | 值 | 说明 |
| -------- | -------- | -------- | | -------- | -------- | -------- |
| NO_SPECIFIC | 0 | 不区分故障类型 | | NO_SPECIFIC | 0 | 不区分故障类型 |
| CPP_CRASH | 2 | C++程序故障类型 | | CPP_CRASH | 2 | C++程序故障类型 |
...@@ -25,9 +25,9 @@ import faultLogger from '@ohos.faultLogger' ...@@ -25,9 +25,9 @@ import faultLogger from '@ohos.faultLogger'
故障信息数据结构,获取到的故障信息的数据结构。 故障信息数据结构,获取到的故障信息的数据结构。
**系统能力:** 以下各项对应的系统能力均为SystemCapability.HiviewDFX.Hiview.FaultLogger。 **系统能力:** SystemCapability.HiviewDFX.Hiview.FaultLogger
| 名称 | 参数类型 | 说明 | | 名称 | 类型 | 说明 |
| -------- | -------- | -------- | | -------- | -------- | -------- |
| pid | number | 故障进程的进程id | | pid | number | 故障进程的进程id |
| uid | number | 故障进程的用户id | | uid | number | 故障进程的用户id |
...@@ -53,7 +53,7 @@ querySelfFaultLog(faultType: FaultType, callback: AsyncCallback&lt;Array&lt;Faul ...@@ -53,7 +53,7 @@ querySelfFaultLog(faultType: FaultType, callback: AsyncCallback&lt;Array&lt;Faul
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| faultType | [FaultType](#faulttype) | 是 | 输入要查询的故障类型。 | | faultType | [FaultType](#faulttype) | 是 | 输入要查询的故障类型。 |
| callback | AsyncCallbackArray&lt;Array&lt;[FaultLogInfo](#faultloginfo)&gt;&gt; | 是 | 回调函数,在回调函数中获取故障信息数组。<br/>-&nbsp;value拿到故障信息数组;value为undefined表示获取过程中出现异常,error返回错误提示字符串 | callback | AsyncCallback&lt;Array&lt;[FaultLogInfo](#faultloginfo)&gt;&gt; | 是 | 回调函数,在回调函数中获取故障信息数组。<br/>-&nbsp;value拿到故障信息数组;value为undefined表示获取过程中出现异常,error返回错误提示字符串
**示例:** **示例:**
...@@ -138,13 +138,13 @@ query(faultType: FaultType, callback: AsyncCallback&lt;Array&lt;FaultLogInfo&gt; ...@@ -138,13 +138,13 @@ query(faultType: FaultType, callback: AsyncCallback&lt;Array&lt;FaultLogInfo&gt;
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| faultType | [FaultType](#faulttype) | 是 | 输入要查询的故障类型。 | | faultType | [FaultType](#faulttype) | 是 | 输入要查询的故障类型。 |
| callback | AsyncCallbackArray&lt;Array&lt;[FaultLogInfo](#faultloginfo)&gt;&gt; | 是 | 回调函数,在回调函数中获取故障信息数组。<br/>-&nbsp;value拿到故障信息数组;value为undefined表示获取过程中出现异常,error返回错误提示字符串 | callback | AsyncCallback&lt;Array&lt;[FaultLogInfo](#faultloginfo)&gt;&gt; | 是 | 回调函数,在回调函数中获取故障信息数组。<br/>-&nbsp;value拿到故障信息数组;value为undefined表示获取过程中出现异常,error返回错误提示字符串
**错误码:** **错误码:**
以下错误码的详细介绍参见[ohos.faultLogger错误码](../errorcodes/errorcode-faultlogger.md) 以下错误码的详细介绍参见[ohos.faultLogger错误码](../errorcodes/errorcode-faultlogger.md)
| 错误码ID | 错误信息(此处仅提供错误抛出的关键信息) | | 错误码ID | 错误信息 |
| --- | --- | | --- | --- |
| 10600001 | The service is not running or broken | | 10600001 | The service is not running or broken |
...@@ -201,7 +201,7 @@ query(faultType: FaultType) : Promise&lt;Array&lt;FaultLogInfo&gt;&gt; ...@@ -201,7 +201,7 @@ query(faultType: FaultType) : Promise&lt;Array&lt;FaultLogInfo&gt;&gt;
以下错误码的详细介绍参见[ohos.faultLogger错误码](../errorcodes/errorcode-faultlogger.md) 以下错误码的详细介绍参见[ohos.faultLogger错误码](../errorcodes/errorcode-faultlogger.md)
| 错误码ID | 错误信息(此处仅提供错误抛出的关键信息) | | 错误码ID | 错误信息 |
| --- | --- | | --- | --- |
| 10600001 | The service is not running or broken | | 10600001 | The service is not running or broken |
......
...@@ -27,7 +27,7 @@ startAbility(parameter: StartAbilityParameter, callback: AsyncCallback\<number>) ...@@ -27,7 +27,7 @@ startAbility(parameter: StartAbilityParameter, callback: AsyncCallback\<number>)
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| --------- | ---------------------------------------- | ---- | -------------- | | --------- | ---------------------------------------- | ---- | -------------- |
| parameter | [StartAbilityParameter](#startabilityparameter) | 是 | 表示被启动的Ability。 | | parameter | [StartAbilityParameter](#startabilityparameter) | 是 | 表示被启动的Ability。 |
| callback | AsyncCallback\<number> | 是 | 被指定的回调方法。 | | callback | AsyncCallback\<number> | 是 | 被指定的回调方法。 |
...@@ -70,7 +70,7 @@ startAbility(parameter: StartAbilityParameter): Promise\<number> ...@@ -70,7 +70,7 @@ startAbility(parameter: StartAbilityParameter): Promise\<number>
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| --------- | ---------------------------------------- | ---- | -------------- | | --------- | ---------------------------------------- | ---- | -------------- |
| parameter | [StartAbilityParameter](#startabilityparameter) | 是 | 表示被启动的Ability。 | | parameter | [StartAbilityParameter](#startabilityparameter) | 是 | 表示被启动的Ability。 |
...@@ -109,7 +109,7 @@ acquireDataAbilityHelper(uri: string): DataAbilityHelper ...@@ -109,7 +109,7 @@ acquireDataAbilityHelper(uri: string): DataAbilityHelper
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| ---- | ------ | ---- | ------------ | | ---- | ------ | ---- | ------------ |
| uri | string | 是 | 指示要打开的文件的路径。 | | uri | string | 是 | 指示要打开的文件的路径。 |
...@@ -138,7 +138,7 @@ startAbilityForResult(parameter: StartAbilityParameter, callback: AsyncCallback\ ...@@ -138,7 +138,7 @@ startAbilityForResult(parameter: StartAbilityParameter, callback: AsyncCallback\
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| --------- | ---------------------------------------- | ---- | -------------- | | --------- | ---------------------------------------- | ---- | -------------- |
| parameter | [StartAbilityParameter](#startabilityparameter) | 是 | 表示被启动的Ability。 | | parameter | [StartAbilityParameter](#startabilityparameter) | 是 | 表示被启动的Ability。 |
| callback | AsyncCallback\<[AbilityResult](#abilityresult)> | 是 | 被指定的回调方法。 | | callback | AsyncCallback\<[AbilityResult](#abilityresult)> | 是 | 被指定的回调方法。 |
...@@ -179,7 +179,7 @@ startAbilityForResult(parameter: StartAbilityParameter): Promise\<AbilityResult> ...@@ -179,7 +179,7 @@ startAbilityForResult(parameter: StartAbilityParameter): Promise\<AbilityResult>
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| --------- | ---------------------------------------- | ---- | ------------- | | --------- | ---------------------------------------- | ---- | ------------- |
| parameter | [StartAbilityParameter](#startabilityparameter) | 是 | 表示被启动的Ability | | parameter | [StartAbilityParameter](#startabilityparameter) | 是 | 表示被启动的Ability |
...@@ -235,7 +235,7 @@ terminateSelfWithResult(parameter: AbilityResult, callback: AsyncCallback\<void> ...@@ -235,7 +235,7 @@ terminateSelfWithResult(parameter: AbilityResult, callback: AsyncCallback\<void>
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| --------- | ------------------------------- | ---- | -------------- | | --------- | ------------------------------- | ---- | -------------- |
| parameter | [AbilityResult](#abilityresult) | 是 | 表示被启动的Ability。 | | parameter | [AbilityResult](#abilityresult) | 是 | 表示被启动的Ability。 |
| callback | AsyncCallback\<void> | 是 | 被指定的回调方法。 | | callback | AsyncCallback\<void> | 是 | 被指定的回调方法。 |
...@@ -287,7 +287,7 @@ terminateSelfWithResult(parameter: AbilityResult): Promise\<void> ...@@ -287,7 +287,7 @@ terminateSelfWithResult(parameter: AbilityResult): Promise\<void>
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| --------- | ------------------------------- | ---- | ------------- | | --------- | ------------------------------- | ---- | ------------- |
| parameter | [AbilityResult](#abilityresult) | 是 | 表示被启动的Ability | | parameter | [AbilityResult](#abilityresult) | 是 | 表示被启动的Ability |
...@@ -343,7 +343,7 @@ hasWindowFocus(callback: AsyncCallback\<boolean>): void ...@@ -343,7 +343,7 @@ hasWindowFocus(callback: AsyncCallback\<boolean>): void
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | ---------------------------------------- | | -------- | ----------------------- | ---- | ---------------------------------------- |
| callback | AsyncCallback\<boolean> | 是 | 被指定的回调方法。<br>如果此Ability当前具有视窗焦点,则返回true;否则返回false。 | | callback | AsyncCallback\<boolean> | 是 | 被指定的回调方法。<br>如果此Ability当前具有视窗焦点,则返回true;否则返回false。 |
...@@ -389,7 +389,7 @@ getWant(callback: AsyncCallback\<Want>): void ...@@ -389,7 +389,7 @@ getWant(callback: AsyncCallback\<Want>): void
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------------- | ---- | --------- | | -------- | ----------------------------- | ---- | --------- |
| callback | AsyncCallback\<[Want](js-apis-application-Want.md)> | 是 | 被指定的回调方法。 | | callback | AsyncCallback\<[Want](js-apis-application-Want.md)> | 是 | 被指定的回调方法。 |
...@@ -459,7 +459,7 @@ terminateSelf(callback: AsyncCallback\<void>): void ...@@ -459,7 +459,7 @@ terminateSelf(callback: AsyncCallback\<void>): void
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------------------- | ---- | -------- | | -------- | -------------------- | ---- | -------- |
| callback | AsyncCallback\<void> | 是 | 被指定的回调方法 | | callback | AsyncCallback\<void> | 是 | 被指定的回调方法 |
...@@ -507,7 +507,7 @@ connectAbility(request: Want, options:ConnectOptions): number ...@@ -507,7 +507,7 @@ connectAbility(request: Want, options:ConnectOptions): number
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| ------- | -------------- | ---- | --------------------- | | ------- | -------------- | ---- | --------------------- |
| request | [Want](js-apis-application-Want.md) | 是 | 表示被连接的ServiceAbility。 | | request | [Want](js-apis-application-Want.md) | 是 | 表示被连接的ServiceAbility。 |
| options | [ConnectOptions](#connectoptions) | 是 | 被指定的回调方法。 | | options | [ConnectOptions](#connectoptions) | 是 | 被指定的回调方法。 |
...@@ -518,7 +518,7 @@ ConnectOptions类型说明 ...@@ -518,7 +518,7 @@ ConnectOptions类型说明
**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core **系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core
| 名称 | 读写属性 | 类型 | 必填 | 描述 | | 参数名 | 读写属性 | 类型 | 必填 | 说明 |
| ------------ | ---- | -------- | ---- | ------------------------- | | ------------ | ---- | -------- | ---- | ------------------------- |
| onConnect<sup>7+</sup> | 只读 | function | 是 | 连接成功时的回调函数。 | | onConnect<sup>7+</sup> | 只读 | function | 是 | 连接成功时的回调函数。 |
| onDisconnect<sup>7+</sup> | 只读 | function | 是 | 连接失败时的回调函数。 | | onDisconnect<sup>7+</sup> | 只读 | function | 是 | 连接失败时的回调函数。 |
...@@ -568,7 +568,7 @@ disconnectAbility(connection: number, callback:AsyncCallback\<void>): void ...@@ -568,7 +568,7 @@ disconnectAbility(connection: number, callback:AsyncCallback\<void>): void
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| ---------- | -------------------- | ---- | ----------------------- | | ---------- | -------------------- | ---- | ----------------------- |
| connection | number | 是 | 指定断开连接的ServiceAbilityID | | connection | number | 是 | 指定断开连接的ServiceAbilityID |
| callback | AsyncCallback\<void> | 是 | 被指定的回调方法 | | callback | AsyncCallback\<void> | 是 | 被指定的回调方法 |
...@@ -615,7 +615,7 @@ disconnectAbility(connection: number): Promise\<void> ...@@ -615,7 +615,7 @@ disconnectAbility(connection: number): Promise\<void>
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| ---------- | ------ | ---- | ----------------------- | | ---------- | ------ | ---- | ----------------------- |
| connection | number | 是 | 指定断开连接的ServiceAbilityID | | connection | number | 是 | 指定断开连接的ServiceAbilityID |
...@@ -669,7 +669,7 @@ getWindow(callback: AsyncCallback\<window.Window>): void ...@@ -669,7 +669,7 @@ getWindow(callback: AsyncCallback\<window.Window>): void
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------------- | ---- | ----------------------------- | | -------- | ----------------------------- | ---- | ----------------------------- |
| callback | AsyncCallback\<window.Window> | 是 | 返回与当前Ability对应的窗口。 | | callback | AsyncCallback\<window.Window> | 是 | 返回与当前Ability对应的窗口。 |
...@@ -713,7 +713,7 @@ onConnect(elementName: ElementName, remote: rpc.IRemoteObject): void; ...@@ -713,7 +713,7 @@ onConnect(elementName: ElementName, remote: rpc.IRemoteObject): void;
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| ----------- | ----------------- | ---- | -------- | | ----------- | ----------------- | ---- | -------- |
| elementName | ElementName | 是 | 元素名。 | | elementName | ElementName | 是 | 元素名。 |
| remote | rpc.IRemoteObject | 是 | rpc远程对象。 | | remote | rpc.IRemoteObject | 是 | rpc远程对象。 |
...@@ -756,7 +756,7 @@ onDisconnect(elementName: ElementName): void; ...@@ -756,7 +756,7 @@ onDisconnect(elementName: ElementName): void;
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| ----------- | ----------- | ---- | ---- | | ----------- | ----------- | ---- | ---- |
| elementName | ElementName | 是 | 元素名。 | | elementName | ElementName | 是 | 元素名。 |
...@@ -798,7 +798,7 @@ ConnectAbility调用失败时的回调函数。 ...@@ -798,7 +798,7 @@ ConnectAbility调用失败时的回调函数。
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| ---- | ------ | ---- | --------- | | ---- | ------ | ---- | --------- |
| code | number | 是 | number类型。 | | code | number | 是 | number类型。 |
...@@ -846,7 +846,7 @@ featureAbility.AbilityWindowConfiguration.WINDOW_MODE_UNDEFINED ...@@ -846,7 +846,7 @@ featureAbility.AbilityWindowConfiguration.WINDOW_MODE_UNDEFINED
**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.FAModel **系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.FAModel
| 名称 | 参数 | 描述 | | 名称 | 值 | 说明 |
| ---------------------------------------- | ---- | ---------------------------------------- | | ---------------------------------------- | ---- | ---------------------------------------- |
| WINDOW_MODE_UNDEFINED<sup>7+</sup> | 0 | 未定义。 | | WINDOW_MODE_UNDEFINED<sup>7+</sup> | 0 | 未定义。 |
| WINDOW_MODE_FULLSCREEN<sup>7+</sup> | 1 | 全屏。 | | WINDOW_MODE_FULLSCREEN<sup>7+</sup> | 1 | 全屏。 |
...@@ -869,11 +869,11 @@ featureAbility.AbilityStartSetting.BOUNDS_KEY ...@@ -869,11 +869,11 @@ featureAbility.AbilityStartSetting.BOUNDS_KEY
**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.FAModel **系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.FAModel
| 名称 | 参数 | 描述 | | 名称 | 值 | 说明 |
| ---------------------------- | --------------- | ---------------------------------------- | | ---------------------------- | --------------- | ---------------------------------------- |
| BOUNDS_KEY<sup>7+</sup> | "abilityBounds" | 窗口显示大小属性的名称。 | | BOUNDS_KEY<sup>7+</sup> | "abilityBounds" | 窗口显示大小属性的参数名。 |
| WINDOW_MODE_KEY<sup>7+</sup> | "windowMode" | 窗口显示模式属性的名称。| | WINDOW_MODE_KEY<sup>7+</sup> | "windowMode" | 窗口显示模式属性的参数名。|
| DISPLAY_ID_KEY<sup>7+</sup> | "displayId" | 窗口显示设备ID属性的名称。 | | DISPLAY_ID_KEY<sup>7+</sup> | "displayId" | 窗口显示设备ID属性的参数名。 |
## ErrorCode ## ErrorCode
...@@ -881,7 +881,7 @@ featureAbility.AbilityStartSetting.BOUNDS_KEY ...@@ -881,7 +881,7 @@ featureAbility.AbilityStartSetting.BOUNDS_KEY
**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.FAModel **系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.FAModel
| 变量 | 值 | 说明 | | 名称 | 值 | 说明 |
| ------------------------------ | ---- | ---------------------------------------- | | ------------------------------ | ---- | ---------------------------------------- |
| NO_ERROR<sup>7+</sup> | 0 | 没有错误。 | | NO_ERROR<sup>7+</sup> | 0 | 没有错误。 |
| INVALID_PARAMETER<sup>7+</sup> | -1 | 无效的参数。 | | INVALID_PARAMETER<sup>7+</sup> | -1 | 无效的参数。 |
...@@ -895,7 +895,7 @@ featureAbility.AbilityStartSetting.BOUNDS_KEY ...@@ -895,7 +895,7 @@ featureAbility.AbilityStartSetting.BOUNDS_KEY
**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.FAModel **系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.FAModel
| 变量 | 值 | 说明 | | 名称 | 值 | 说明 |
| ------------------------ | ---- | ---------------------------------------- | | ------------------------ | ---- | ---------------------------------------- |
| TYPE_INSERT<sup>7+</sup> | 1 | 插入类型。 | | TYPE_INSERT<sup>7+</sup> | 1 | 插入类型。 |
| TYPE_UPDATE<sup>7+</sup> | 2 | 修改类型。 | | TYPE_UPDATE<sup>7+</sup> | 2 | 修改类型。 |
...@@ -908,25 +908,25 @@ featureAbility.AbilityStartSetting.BOUNDS_KEY ...@@ -908,25 +908,25 @@ featureAbility.AbilityStartSetting.BOUNDS_KEY
**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityBase **系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityBase
| 名称 | 读写属性 | 类型 | 必填 | 描述 | | 名称 | 类型 | 可读| 可写 | 必填 | 说明 |
| ----------------------- | ---- | ------------- | ---- | ------------------------------------- | | --------------- |-------- | ------ | ------------- | ---- | ------------------------------------- |
| resultCode<sup>7+</sup> | 只读 | number | 是 | 指示销毁该能力后返回的结果代码。您可以定义结果代码来识别错误(暂不支持)。 | | resultCode<sup>7+</sup>| number| 是 | 否 | 是 | 指示销毁该能力后返回的结果代码。您可以定义结果代码来识别错误(暂不支持)。 |
| want<sup>7+</sup> | 只读 | [Want](js-apis-application-Want.md) | 否 | 指示销毁该能力后返回的数据。您可以定义返回的数据。此参数可以为null。 | | want<sup>7+</sup> | [Want](js-apis-application-Want.md)| 是 | 否 | 否 | 指示销毁该能力后返回的数据。您可以定义返回的数据。此参数可以为null。 |
## StartAbilityParameter ## StartAbilityParameter
**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.FAModel **系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.FAModel
| 名称 | 读写属性 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 可读| 可写 | 必填 | 说明 |
| ------------------- | ---- | -------------------- | ---- | -------------------------------------- | | ------------------- | -------- | -------------------- | ---- | -------------------------------------- |
| want | 只读 | [Want](js-apis-application-Want.md) | 是 | 表示需要包含有关目标启动能力的信息。 | | want | [Want](js-apis-application-Want.md)| 是 | 否 | 是 | 表示需要包含有关目标启动能力的信息。 |
| abilityStartSetting | 只读 | {[key: string]: any} | 否 | 表示能力的特殊属性,当开发者启动能力时,该属性可以作为调用中的输入参数传递。 | | abilityStartSetting | {[key: string]: any} | 是 |否 | 否 | 表示能力的特殊属性,当开发者启动能力时,该属性可以作为调用中的输入参数传递。 |
## flags说明 ## flags说明
**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityBase **系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityBase
| 名称 | 参数 | 描述 | | 名称 | 值 | 说明 |
| ------------------------------------ | ---------- | ---------------------------------------- | | ------------------------------------ | ---------- | ---------------------------------------- |
| FLAG_AUTH_READ_URI_PERMISSION | 0x00000001 | 指示对URI执行读取操作的授权。 | | FLAG_AUTH_READ_URI_PERMISSION | 0x00000001 | 指示对URI执行读取操作的授权。 |
| FLAG_AUTH_WRITE_URI_PERMISSION | 0x00000002 | 指示对URI执行写入操作的授权。 | | FLAG_AUTH_WRITE_URI_PERMISSION | 0x00000002 | 指示对URI执行写入操作的授权。 |
......
...@@ -234,7 +234,7 @@ hidebug.dumpHeapData("heap-20220216"); ...@@ -234,7 +234,7 @@ hidebug.dumpHeapData("heap-20220216");
## hidebug.getServiceDump<sup>9+<sup> ## hidebug.getServiceDump<sup>9+<sup>
getServiceDump(serviceid : number, fd : number, args : Array<string>) : void getServiceDump(serviceid : number, fd : number, args : Array\<string>) : void
获取系统服务信息。 获取系统服务信息。
...@@ -248,7 +248,7 @@ getServiceDump(serviceid : number, fd : number, args : Array<string>) : void ...@@ -248,7 +248,7 @@ getServiceDump(serviceid : number, fd : number, args : Array<string>) : void
| -------- | ------ | ---- | ------------------------------------------------------------ | | -------- | ------ | ---- | ------------------------------------------------------------ |
| serviceid | number | 是 | 基于该用户输入的service id获取系统服务信息。| | serviceid | number | 是 | 基于该用户输入的service id获取系统服务信息。|
| fd | number | 是 | 文件描述符,该接口会往该fd中写入数据。| | fd | number | 是 | 文件描述符,该接口会往该fd中写入数据。|
| args | Array<string> | 是 | 系统服务的Dump接口所对应的参数列表。| | args | Array\<string> | 是 | 系统服务的Dump接口所对应的参数列表。|
**示例:** **示例:**
......
...@@ -45,7 +45,7 @@ hilog.isLoggable(0x0001, "testTag", hilog.LogLevel.INFO); ...@@ -45,7 +45,7 @@ hilog.isLoggable(0x0001, "testTag", hilog.LogLevel.INFO);
**系统能力:** SystemCapability.HiviewDFX.HiLog **系统能力:** SystemCapability.HiviewDFX.HiLog
| 名称 | 默认值 | 说明 | | 名称 | | 说明 |
| ----- | ------ | ------------------------------------------------------------ | | ----- | ------ | ------------------------------------------------------------ |
| DEBUG | 3 | 详细的流程记录,通过该级别的日志可以更详细地分析业务流程和定位分析问题。 | | DEBUG | 3 | 详细的流程记录,通过该级别的日志可以更详细地分析业务流程和定位分析问题。 |
| INFO | 4 | 用于记录业务关键流程节点,可以还原业务的主要运行过程;<br/>用于记录可预料的非正常情况信息,如无网络信号、登录失败等。<br/>这些日志都应该由该业务内处于支配地位的模块来记录,避免在多个被调用的模块或低级函数中重复记录。 | | INFO | 4 | 用于记录业务关键流程节点,可以还原业务的主要运行过程;<br/>用于记录可预料的非正常情况信息,如无网络信号、登录失败等。<br/>这些日志都应该由该业务内处于支配地位的模块来记录,避免在多个被调用的模块或低级函数中重复记录。 |
......
...@@ -613,7 +613,7 @@ try { ...@@ -613,7 +613,7 @@ try {
showSoftKeyboard(callback: AsyncCallback&lt;void&gt;): void showSoftKeyboard(callback: AsyncCallback&lt;void&gt;): void
显示软键盘。使用callback异步回调。 显示软键盘。需要与输入框绑定使用。当点击输入框后,才可通过该接口的调用显示出当前输入法的软键盘。使用callback异步回调。
**需要权限:** ohos.permission.CONNECT_IME_ABILITY **需要权限:** ohos.permission.CONNECT_IME_ABILITY
...@@ -648,9 +648,7 @@ inputMethodController.showSoftKeyboard((err) => { ...@@ -648,9 +648,7 @@ inputMethodController.showSoftKeyboard((err) => {
### showSoftKeyboard<sup>9+</sup> ### showSoftKeyboard<sup>9+</sup>
showSoftKeyboard(): Promise&lt;void&gt; 显示软键盘。需要与输入框绑定使用。当点击输入框后,才可通过该接口的调用显示出当前输入法的软键盘。使用Promise异步回调。
显示软键盘,使用Promise异步回调。
**需要权限:** ohos.permission.CONNECT_IME_ABILITY **需要权限:** ohos.permission.CONNECT_IME_ABILITY
......
...@@ -192,7 +192,7 @@ media.getFileAssets(imagesFetchOp).then(function(fetchFileResult) { ...@@ -192,7 +192,7 @@ media.getFileAssets(imagesFetchOp).then(function(fetchFileResult) {
### on<sup>8+</sup> ### on<sup>8+</sup>
on(type: 'deviceChange'|'albumChange'|'imageChange'|'audioChange'|'videoChange'|'fileChange'|'remoteFileChange', callback: Callback&lt;void&gt;): void on(type: 'deviceChange'&#124;'albumChange'&#124;'imageChange'&#124;'audioChange'&#124;'videoChange'&#124;'fileChange'&#124;'remoteFileChange', callback: Callback&lt;void&gt;): void
打开媒体库变更通知,使用callback方式返回异步结果。 打开媒体库变更通知,使用callback方式返回异步结果。
...@@ -214,7 +214,7 @@ media.on('imageChange', () => { ...@@ -214,7 +214,7 @@ media.on('imageChange', () => {
``` ```
### off<sup>8+</sup> ### off<sup>8+</sup>
off(type: 'deviceChange'|'albumChange'|'imageChange'|'audioChange'|'videoChange'|'fileChange'|'remoteFileChange', callback?: Callback&lt;void&gt;): void off(type: 'deviceChange'&#124;'albumChange'&#124;'imageChange'&#124;'audioChange'&#124;'videoChange'&#124;'fileChange'&#124;'remoteFileChange', callback?: Callback&lt;void&gt;): void
关闭媒体库变更通知,使用callback方式返回异步结果。 关闭媒体库变更通知,使用callback方式返回异步结果。
...@@ -2471,25 +2471,25 @@ async function example() { ...@@ -2471,25 +2471,25 @@ async function example() {
| 名称 | 值 | 说明 | | 名称 | 值 | 说明 |
| ------------- | ------------------- | ---------------------------------------------------------- | | ------------- | ------------------- | ---------------------------------------------------------- |
| ID | file_id | 文件编号 | | ID | "file_id" | 文件编号 |
| RELATIVE_PATH | relative_path | 相对公共目录路径 | | RELATIVE_PATH | "relative_path" | 相对公共目录路径 |
| DISPLAY_NAME | display_name | 显示名字 | | DISPLAY_NAME | "display_name" | 显示名字 |
| PARENT | parent | 父目录id | | PARENT | "parent" | 父目录id |
| MIME_TYPE | mime_type | 文件扩展属性 | | MIME_TYPE | "mime_type" | 文件扩展属性 |
| MEDIA_TYPE | media_type | 媒体类型 | | MEDIA_TYPE | "media_type" | 媒体类型 |
| SIZE | size | 文件大小(单位:字节) | | SIZE | "size" | 文件大小(单位:字节) |
| DATE_ADDED | date_added | 添加日期(添加文件时间到1970年1月1日的秒数值) | | DATE_ADDED | "date_added" | 添加日期(添加文件时间到1970年1月1日的秒数值) |
| DATE_MODIFIED | date_modified | 修改日期(修改文件时间到1970年1月1日的秒数值) | | DATE_MODIFIED | "date_modified" | 修改日期(修改文件时间到1970年1月1日的秒数值) |
| DATE_TAKEN | date_taken | 拍摄日期(文件拍照时间到1970年1月1日的秒数值) | | DATE_TAKEN | "date_taken" | 拍摄日期(文件拍照时间到1970年1月1日的秒数值) |
| TITLE | title | 文件标题 | | TITLE | "title" | 文件标题 |
| ARTIST | artist | 作者 | | ARTIST | "artist" | 作者 |
| AUDIOALBUM | audio_album | 专辑 | | AUDIOALBUM | "audio_album" | 专辑 |
| DURATION | duration | 持续时间(单位:毫秒) | | DURATION | "duration" | 持续时间(单位:毫秒) |
| WIDTH | width | 图片宽度(单位:像素) | | WIDTH | "width" | 图片宽度(单位:像素) |
| HEIGHT | height | 图片高度(单位:像素) | | HEIGHT | "height" | 图片高度(单位:像素) |
| ORIENTATION | orientation | 图片显示方向,即顺时针旋转角度,如0,90,180。(单位:度) | | ORIENTATION | "orientation" | 图片显示方向,即顺时针旋转角度,如0,90,180。(单位:度) |
| ALBUM_ID | bucket_id | 文件所归属的相册编号 | | ALBUM_ID | "bucket_id" | 文件所归属的相册编号 |
| ALBUM_NAME | bucket_display_name | 文件所归属相册名称 | | ALBUM_NAME | "bucket_display_name" | 文件所归属相册名称 |
## DirectoryType<sup>8+</sup> ## DirectoryType<sup>8+</sup>
...@@ -2575,7 +2575,7 @@ async function example() { ...@@ -2575,7 +2575,7 @@ async function example() {
| 名称 | 类型 | 可读 | 可写 | 说明 | | 名称 | 类型 | 可读 | 可写 | 说明 |
| ----- | ------ | ---- | ---- | -------------------- | | ----- | ------ | ---- | ---- | -------------------- |
| type | string | 是 | 是 | 媒体类型,包括:image, video, media,当前仅支持media类型 | | type | 'image' &#124; 'video' &#124; 'media' | 是 | 是 | 媒体类型,包括:image, video, media,当前仅支持media类型 |
| count | number | 是 | 是 | 媒体选择,count = 1表示单选,count大于1表示多选。 | | count | number | 是 | 是 | 媒体选择,count = 1表示单选,count大于1表示多选。 |
...@@ -49,7 +49,8 @@ registerMissionListener(listener: MissionListener): number; ...@@ -49,7 +49,8 @@ registerMissionListener(listener: MissionListener): number;
onMissionSnapshotChanged: function (mission) {console.log("--------onMissionSnapshotChanged-------")}, onMissionSnapshotChanged: function (mission) {console.log("--------onMissionSnapshotChanged-------")},
onMissionMovedToFront: function (mission) {console.log("--------onMissionMovedToFront-------")}, onMissionMovedToFront: function (mission) {console.log("--------onMissionMovedToFront-------")},
onMissionIconUpdated: function (mission, icon) {console.log("--------onMissionIconUpdated-------")}, onMissionIconUpdated: function (mission, icon) {console.log("--------onMissionIconUpdated-------")},
onMissionClosed: function (mission) {console.log("--------onMissionClosed-------")} onMissionClosed: function (mission) {console.log("--------onMissionClosed-------")},
onMissionLabelUpdated: function (mission) {console.log("--------onMissionLabelUpdated-------")}
}; };
console.log("registerMissionListener") console.log("registerMissionListener")
var listenerid = missionManager.registerMissionListener(listener); var listenerid = missionManager.registerMissionListener(listener);
...@@ -84,7 +85,8 @@ unregisterMissionListener(listenerId: number, callback: AsyncCallback&lt;void&gt ...@@ -84,7 +85,8 @@ unregisterMissionListener(listenerId: number, callback: AsyncCallback&lt;void&gt
onMissionSnapshotChanged: function (mission) {console.log("--------onMissionSnapshotChanged-------")}, onMissionSnapshotChanged: function (mission) {console.log("--------onMissionSnapshotChanged-------")},
onMissionMovedToFront: function (mission) {console.log("--------onMissionMovedToFront-------")}, onMissionMovedToFront: function (mission) {console.log("--------onMissionMovedToFront-------")},
onMissionIconUpdated: function (mission, icon) {console.log("--------onMissionIconUpdated-------")}, onMissionIconUpdated: function (mission, icon) {console.log("--------onMissionIconUpdated-------")},
onMissionClosed: function (mission) {console.log("--------onMissionClosed-------")} onMissionClosed: function (mission) {console.log("--------onMissionClosed-------")},
onMissionLabelUpdated: function (mission) {console.log("--------onMissionLabelUpdated-------")}
}; };
console.log("registerMissionListener") console.log("registerMissionListener")
var listenerid = missionManager.registerMissionListener(listener); var listenerid = missionManager.registerMissionListener(listener);
...@@ -128,7 +130,8 @@ unregisterMissionListener(listenerId: number): Promise&lt;void&gt;; ...@@ -128,7 +130,8 @@ unregisterMissionListener(listenerId: number): Promise&lt;void&gt;;
onMissionSnapshotChanged: function (mission) {console.log("--------onMissionSnapshotChanged-------")}, onMissionSnapshotChanged: function (mission) {console.log("--------onMissionSnapshotChanged-------")},
onMissionMovedToFront: function (mission) {console.log("--------onMissionMovedToFront-------")}, onMissionMovedToFront: function (mission) {console.log("--------onMissionMovedToFront-------")},
onMissionIconUpdated: function (mission, icon) {console.log("--------onMissionIconUpdated-------")}, onMissionIconUpdated: function (mission, icon) {console.log("--------onMissionIconUpdated-------")},
onMissionClosed: function (mission) {console.log("--------onMissionClosed-------")} onMissionClosed: function (mission) {console.log("--------onMissionClosed-------")},
onMissionLabelUpdated: function (mission) {console.log("--------onMissionLabelUpdated-------")}
}; };
console.log("registerMissionListener") console.log("registerMissionListener")
var listenerid = missionManager.registerMissionListener(listener); var listenerid = missionManager.registerMissionListener(listener);
......
...@@ -5,10 +5,9 @@ ...@@ -5,10 +5,9 @@
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 > 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
## **导入模块** ## **导入模块**
``` ```js
import controller from '@ohos.nfc.controller'; import controller from '@ohos.nfc.controller';
``` ```
...@@ -18,7 +17,7 @@ import controller from '@ohos.nfc.controller'; ...@@ -18,7 +17,7 @@ import controller from '@ohos.nfc.controller';
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
| 名称 | 默认值 | 说明 | | 名称 | 值 | 说明 |
| -------- | -------- | -------- | | -------- | -------- | -------- |
| STATE_OFF | 1 | NFC已关闭状态。 | | STATE_OFF | 1 | NFC已关闭状态。 |
| STATE_TURNING_ON | 2 | NFC正在打开状态。 | | STATE_TURNING_ON | 2 | NFC正在打开状态。 |
...@@ -110,12 +109,10 @@ on(type: "nfcStateChange", callback: Callback&lt;[NfcState](#nfcstate)&gt;): voi ...@@ -110,12 +109,10 @@ on(type: "nfcStateChange", callback: Callback&lt;[NfcState](#nfcstate)&gt;): voi
**参数** **参数**
| **参数名** | **类型** | **必填** | **说明** | | **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| type | string | 是 | 固定填"nfcStateChange"字符串。 | | type | string | 是 | 固定填"nfcStateChange"字符串。 |
| callback | Callback&lt;[NfcState](#nfcstate)&gt; | 是 | NFC状态改变通知的回调函数。 | | callback | Callback&lt;[NfcState](#nfcstate)&gt; | 是 | NFC状态改变通知的回调函数。 |
## controller.off('nfcStateChange') ## controller.off('nfcStateChange')
...@@ -126,41 +123,38 @@ off(type: "nfcStateChange", callback?: Callback&lt;[NfcState](#nfcstate)&gt;): v ...@@ -126,41 +123,38 @@ off(type: "nfcStateChange", callback?: Callback&lt;[NfcState](#nfcstate)&gt;): v
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**参数** **参数**
| **参数名** | **类型** | **必填** | **说明** | | **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| type | string | 是 | 固定填"nfcStateChange"字符串。 | | type | string | 是 | 固定填"nfcStateChange"字符串。 |
| callback | Callback&lt;[NfcState](#nfcstate)&gt; | 否 | NFC状态改变回调函数,可以空缺不填。 | | callback | Callback&lt;[NfcState](#nfcstate)&gt; | 否 | NFC状态改变回调函数,可以空缺不填。 |
**示例** **示例**
```js ```js
import controller from '@ohos.nfc.controller'; import controller from '@ohos.nfc.controller';
// callback key definition
var NFC_STATE_CALLBACK_KEY = "nfcStateChange";
// register callback to receive the nfc state changed notification
controller.on(NFC_STATE_CALLBACK_KEY, (err, nfcState)=> {
if (err) {
console.log("controller on callback err: " + err);
} else {
console.log("controller on callback nfcState: " + nfcState);
}
});
// open nfc, require permission: ohos.permission.MANAGE_SECURE_SETTINGS
if (!controller.isNfcOpen()) {
var ret = controller.openNfc();
console.log("controller openNfc ret: " + ret);
}
// close nfc, require permission: ohos.permission.MANAGE_SECURE_SETTINGS // register callback to receive the nfc state changed notification
if (controller.isNfcOpen()) { controller.on("nfcStateChange", (err, nfcState)=> {
var ret = controller.closeNfc(); if (err) {
console.log("controller closeNfc ret: " + ret); console.log("controller on callback err: " + err);
} else {
console.log("controller on callback nfcState: " + nfcState);
} }
});
// unregister callback
controller.off(NFC_STATE_CALLBACK_KEY); // open nfc, require permission: ohos.permission.MANAGE_SECURE_SETTINGS
``` if (!controller.isNfcOpen()) {
var ret = controller.openNfc();
console.log("controller openNfc ret: " + ret);
}
// close nfc, require permission: ohos.permission.MANAGE_SECURE_SETTINGS
if (controller.isNfcOpen()) {
var ret = controller.closeNfc();
console.log("controller closeNfc ret: " + ret);
}
// unregister callback
controller.off("nfcStateChange");
```
...@@ -59,6 +59,7 @@ import tag from '@ohos.nfc.tag'; ...@@ -59,6 +59,7 @@ import tag from '@ohos.nfc.tag';
``` ```
## **tag.TagInfo** ## **tag.TagInfo**
在对相关Tag类型卡片进行读写之前,必须先获取TagInfo相关属性值,以确认设备读取到的Tag卡片支持哪些技术类型。这样Tag应用程序才能调用正确的接口和所读取到的Tag卡片进行通信。 在对相关Tag类型卡片进行读写之前,必须先获取TagInfo相关属性值,以确认设备读取到的Tag卡片支持哪些技术类型。这样Tag应用程序才能调用正确的接口和所读取到的Tag卡片进行通信。
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -69,7 +70,7 @@ onCreate(want, launchParam) { ...@@ -69,7 +70,7 @@ onCreate(want, launchParam) {
// want is initialized by nfc service, contains tag info for this found tag // want is initialized by nfc service, contains tag info for this found tag
var tagInfo; var tagInfo;
try { try {
tag.getTagInfo(want); tagInfo = tag.getTagInfo(want);
} catch (error) { } catch (error) {
console.log("tag.getTagInfo catched error: " + error); console.log("tag.getTagInfo catched error: " + error);
} }
...@@ -191,16 +192,19 @@ getIsoDep(tagInfo: [TagInfo](#taginfo)): [IsoDepTag](js-apis-nfctech.md#isoDepTa ...@@ -191,16 +192,19 @@ getIsoDep(tagInfo: [TagInfo](#taginfo)): [IsoDepTag](js-apis-nfctech.md#isoDepTa
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| --------- | ------------------------- | ---- | ---------------------------------------- | | --------- | ------------------------- | ---- | ---------------------------------------- |
| taginfo | [TagInfo](#taginfo) | 是 | 包含Tag技术类型和相关参数,从tag.getTagInfo(want: Want)获取。 | | taginfo | [TagInfo](#taginfo) | 是 | 包含Tag技术类型和相关参数,从tag.getTagInfo(want: Want)获取。 |
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| ---------- | ------------------| | ---------- | ------------------|
| [IsoDepTag](js-apis-nfctech.md#isodeptag9) | IsoDep类型Tag对象,通过该对象访问IsoDep类型的相关接口。 | | [IsoDepTag](js-apis-nfctech.md#isodeptag9) | IsoDep类型Tag对象,通过该对象访问IsoDep类型的相关接口。 |
**错误码:** **错误码:**
以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md) 以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md)
| 错误码ID | 错误信息| | 错误码ID | 错误信息|
| ------- | -------| | ------- | -------|
...@@ -215,16 +219,19 @@ getNdef(tagInfo: [TagInfo](#taginfo)): [NdefTag](js-apis-nfctech.md#ndeftag9) ...@@ -215,16 +219,19 @@ getNdef(tagInfo: [TagInfo](#taginfo)): [NdefTag](js-apis-nfctech.md#ndeftag9)
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| --------- | ------------------------- | ---- | ---------------------------------------- | | --------- | ------------------------- | ---- | ---------------------------------------- |
| taginfo | [TagInfo](#taginfo) | 是 | 包含Tag技术类型和相关参数,从tag.getTagInfo(want: Want)获取。 | | taginfo | [TagInfo](#taginfo) | 是 | 包含Tag技术类型和相关参数,从tag.getTagInfo(want: Want)获取。 |
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| ---------| -------------- | | ---------| -------------- |
| [NdefTag](js-apis-nfctech.md#ndeftag9) | NDEF类型Tag对象,通过该对象访问NDEF类型的相关接口。| | [NdefTag](js-apis-nfctech.md#ndeftag9) | NDEF类型Tag对象,通过该对象访问NDEF类型的相关接口。|
**错误码:** **错误码:**
以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md) 以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md)
| 错误码ID | 错误信息| | 错误码ID | 错误信息|
| ------- | -------| | ------- | -------|
...@@ -239,11 +246,13 @@ getMifareClassic(tagInfo: [TagInfo](#taginfo)): [MifareClassicTag](js-apis-nfcte ...@@ -239,11 +246,13 @@ getMifareClassic(tagInfo: [TagInfo](#taginfo)): [MifareClassicTag](js-apis-nfcte
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| --------- | ------------------------- | ---- | ---------------------------------------- | | --------- | ------------------------- | ---- | ---------------------------------------- |
| taginfo | [TagInfo](#taginfo) | 是 | 包含Tag技术类型和相关参数,从tag.getTagInfo(want: Want)获取。 | | taginfo | [TagInfo](#taginfo) | 是 | 包含Tag技术类型和相关参数,从tag.getTagInfo(want: Want)获取。 |
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| ----------------- | ------------------------| | ----------------- | ------------------------|
| [MifareClassicTag](js-apis-nfctech.md#mifareclassictag-9) | MIFARE Classic类型Tag对象,通过该对象访问MIFARE Classic类型的相关接口。 | | [MifareClassicTag](js-apis-nfctech.md#mifareclassictag-9) | MIFARE Classic类型Tag对象,通过该对象访问MIFARE Classic类型的相关接口。 |
...@@ -268,11 +277,13 @@ getMifareUltralight(tagInfo: [TagInfo](#taginfo)): [MifareUltralightTag](js-apis ...@@ -268,11 +277,13 @@ getMifareUltralight(tagInfo: [TagInfo](#taginfo)): [MifareUltralightTag](js-apis
| taginfo | [TagInfo](#taginfo) | 是 | 包含Tag技术类型和相关参数,从tag.getTagInfo(want: Want)获取。 | | taginfo | [TagInfo](#taginfo) | 是 | 包含Tag技术类型和相关参数,从tag.getTagInfo(want: Want)获取。 |
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| -------------------- | ---------------------------| | -------------------- | ---------------------------|
| [MifareUltralightTag](js-apis-nfctech.md#mifareultralighttag9) | MIFARE Ultralight类型Tag对象,通过该对象访问MIFARE Ultralight类型的相关接口。 | | [MifareUltralightTag](js-apis-nfctech.md#mifareultralighttag9) | MIFARE Ultralight类型Tag对象,通过该对象访问MIFARE Ultralight类型的相关接口。 |
**错误码:** **错误码:**
以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md) 以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md)
| 错误码ID | 错误信息| | 错误码ID | 错误信息|
| ------- | -------| | ------- | -------|
...@@ -287,11 +298,13 @@ getNdefFormatable(tagInfo: [TagInfo](#taginfo)): [NdefFormatableTag](js-apis-nfc ...@@ -287,11 +298,13 @@ getNdefFormatable(tagInfo: [TagInfo](#taginfo)): [NdefFormatableTag](js-apis-nfc
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| [NdefFormatableTag](js-apis-nfctech.md#ndefformatabletag) | NDEF Formatable类型Tag对象,通过该对象访问NDEF Formatable类型的相关接口。 | | [NdefFormatableTag](js-apis-nfctech.md#ndefformatabletag) | NDEF Formatable类型Tag对象,通过该对象访问NDEF Formatable类型的相关接口。 |
**错误码:** **错误码:**
以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md) 以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md)
| 错误码ID | 错误信息| | 错误码ID | 错误信息|
| ------- | -------| | ------- | -------|
...@@ -306,11 +319,13 @@ getTagInfo(want: [Want](js-apis-application-Want.md#Want)): [TagInfo](#taginfo) ...@@ -306,11 +319,13 @@ getTagInfo(want: [Want](js-apis-application-Want.md#Want)): [TagInfo](#taginfo)
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| --------- | ------------------------- | ---- | ---------------------------------------- | | --------- | ------------------------- | ---- | ---------------------------------------- |
| want | [Want](js-apis-application-Want.md#Want) | 是 | 分发Ability时,在系统onCreate入口函数的参数中获取。 | | want | [Want](js-apis-application-Want.md#Want) | 是 | 分发Ability时,在系统onCreate入口函数的参数中获取。 |
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| [TagInfo](#taginfo) | TagInfo对象,用于获取不同技术类型的Tag对象。 | | [TagInfo](#taginfo) | TagInfo对象,用于获取不同技术类型的Tag对象。 |
...@@ -331,11 +346,13 @@ makeUriRecord(uri: string): [NdefRecord](#ndefrecord9); ...@@ -331,11 +346,13 @@ makeUriRecord(uri: string): [NdefRecord](#ndefrecord9);
| uri | string | 是 | 写入到NDEF Record里面的数据内容。 | | uri | string | 是 | 写入到NDEF Record里面的数据内容。 |
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| [NdefRecord](#ndefrecord9) | NDEF标签的Record,详见NDEF技术规范《NFCForum-TS-NDEF_1.0》。 | | [NdefRecord](#ndefrecord9) | NDEF标签的Record,详见NDEF技术规范《NFCForum-TS-NDEF_1.0》。 |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -362,17 +379,20 @@ makeTextRecord(text: string, locale: string): [NdefRecord](#ndefrecord9); ...@@ -362,17 +379,20 @@ makeTextRecord(text: string, locale: string): [NdefRecord](#ndefrecord9);
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| text | string | 是 | 写入到NDEF Record里面的文本数据内容。 | | text | string | 是 | 写入到NDEF Record里面的文本数据内容。 |
| locale | string | 是 | 文本数据内容的编码方式。 | | locale | string | 是 | 文本数据内容的编码方式。 |
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| [NdefRecord](#ndefrecord9) | NDEF标签的Record,详见NDEF技术规范《NFCForum-TS-NDEF_1.0》。 | | [NdefRecord](#ndefrecord9) | NDEF标签的Record,详见NDEF技术规范《NFCForum-TS-NDEF_1.0》。 |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -398,26 +418,29 @@ makeMimeRecord(mimeType: string, mimeData: number[]): [NdefRecord](#ndefrecord9) ...@@ -398,26 +418,29 @@ makeMimeRecord(mimeType: string, mimeData: number[]): [NdefRecord](#ndefrecord9)
根据输入的MIME数据和类型,构建NDEF标签的Record。 根据输入的MIME数据和类型,构建NDEF标签的Record。
**系统能力**:SystemCapability.Communication.NFC **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| mimeType | string | 是 | 符合RFC规则的MIME类型,比如"text/plain"或"image/jpeg"。 | | mimeType | string | 是 | 符合RFC规则的MIME类型,比如"text/plain"或"image/jpeg"。 |
| mimeData | number[] | 是 | MIME数据内容,每个number十六进制表示,范围是0x00~0xFF。 | | mimeData | number[] | 是 | MIME数据内容,每个number十六进制表示,范围是0x00~0xFF。 |
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| [NdefRecord](#ndefrecord9) | NDEF标签的Record,详见NDEF技术规范《NFCForum-TS-NDEF_1.0》。 | | [NdefRecord](#ndefrecord9) | NDEF标签的Record,详见NDEF技术规范《NFCForum-TS-NDEF_1.0》。 |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
try { try {
let mimeType = "text/plain"; // change it to be correct. let mimeType = "text/plain"; // change it to be correct.
let mimeData = [0x01, 0x02, 0x03, 0x04, ...]; // change it to be correct. let mimeData = [0x01, 0x02, 0x03, 0x04]; // change it to be correct.
let ndefRecord = tag.ndef.makeMimeRecord(mimeType, mimeData); let ndefRecord = tag.ndef.makeMimeRecord(mimeType, mimeData);
if (ndefRecord != undefined) { if (ndefRecord != undefined) {
console.log("ndefMessage makeMimeRecord rtdType: " + ndefRecord.rtdType); console.log("ndefMessage makeMimeRecord rtdType: " + ndefRecord.rtdType);
...@@ -435,9 +458,10 @@ makeExternalRecord(domainName: string, type: string, externalData: number[]): [N ...@@ -435,9 +458,10 @@ makeExternalRecord(domainName: string, type: string, externalData: number[]): [N
根据应用程序特定的外部数据,构建NDEF标签的Record。 根据应用程序特定的外部数据,构建NDEF标签的Record。
**系统能力**:SystemCapability.Communication.NFC **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| domainName | string | 是 | 外部数据发布组织的域名,一般是应用程序的包名。 | | domainName | string | 是 | 外部数据发布组织的域名,一般是应用程序的包名。 |
...@@ -445,18 +469,20 @@ makeExternalRecord(domainName: string, type: string, externalData: number[]): [N ...@@ -445,18 +469,20 @@ makeExternalRecord(domainName: string, type: string, externalData: number[]): [N
| externalData | number[] | 是 | 外部数据内容,每个number十六进制表示,范围是0x00~0xFF。 | | externalData | number[] | 是 | 外部数据内容,每个number十六进制表示,范围是0x00~0xFF。 |
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| [NdefRecord](#ndefrecord9) | NDEF标签的Record,详见NDEF技术规范《NFCForum-TS-NDEF_1.0》。 | | [NdefRecord](#ndefrecord9) | NDEF标签的Record,详见NDEF技术规范《NFCForum-TS-NDEF_1.0》。 |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
try { try {
let domainName = "ohos.nfc.application"; // change it to be correct. let domainName = "ohos.nfc.application"; // change it to be correct.
let type = "test"; // change it to be correct. let type = "test"; // change it to be correct.
let externalData = [0x01, 0x02, 0x03, 0x04, ...]; // change it to be correct. let externalData = [0x01, 0x02, 0x03, 0x04]; // change it to be correct.
let ndefRecord = tag.ndef.makeExternalRecord(domainName, type, externalData); let ndefRecord = tag.ndef.makeExternalRecord(domainName, type, externalData);
if (ndefRecord != undefined) { if (ndefRecord != undefined) {
console.log("ndefMessage makeExternalRecord rtdType: " + ndefRecord.rtdType); console.log("ndefMessage makeExternalRecord rtdType: " + ndefRecord.rtdType);
...@@ -475,19 +501,22 @@ messageToBytes(ndefMessage: [NdefMessage](js-apis-nfctech.md#ndefmessage9)): num ...@@ -475,19 +501,22 @@ messageToBytes(ndefMessage: [NdefMessage](js-apis-nfctech.md#ndefmessage9)): num
把输入的NDEF消息数据对象,转换为字节格式的数据。 把输入的NDEF消息数据对象,转换为字节格式的数据。
**系统能力**:SystemCapability.Communication.NFC **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| ndefMessage | [NdefMessage](js-apis-nfctech.md#ndefmessage9) | 是 | NDEF消息数据对象。 | | ndefMessage | [NdefMessage](js-apis-nfctech.md#ndefmessage9) | 是 | NDEF消息数据对象。 |
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| number[] | NDEF消息数据对象,所转换成的字节格式的数据。每个number十六进制表示,范围是0x00~0xFF。 | | number[] | NDEF消息数据对象,所转换成的字节格式的数据。每个number十六进制表示,范围是0x00~0xFF。 |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -513,14 +542,16 @@ createNdefMessage(data: number[]): [NdefMessage](js-apis-nfctech.md#ndefmessage9 ...@@ -513,14 +542,16 @@ createNdefMessage(data: number[]): [NdefMessage](js-apis-nfctech.md#ndefmessage9
使用原始字节数据创建NDEF标签的Message。该数据必须符合NDEF Record数据格式,如果不符合格式,则返回的NdeMessage数据对象,所包含的NDE Record列表会为空。 使用原始字节数据创建NDEF标签的Message。该数据必须符合NDEF Record数据格式,如果不符合格式,则返回的NdeMessage数据对象,所包含的NDE Record列表会为空。
**系统能力**:SystemCapability.Communication.NFC **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| **参数名** | **类型** | **必填** | **说明** | | **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| data | number[] | 是 | 原始字节,每个number十六进制表示,范围是0x00~0xFF。要求必须满足NDEF Record的格式。 | | data | number[] | 是 | 原始字节,每个number十六进制表示,范围是0x00~0xFF。要求必须满足NDEF Record的格式。 |
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| [NdefMessage](js-apis-nfctech.md#ndefmessage9) | NDEF标签的Message,详见NDEF技术规范《NFCForum-TS-NDEF_1.0》。 | | [NdefMessage](js-apis-nfctech.md#ndefmessage9) | NDEF标签的Message,详见NDEF技术规范《NFCForum-TS-NDEF_1.0》。 |
...@@ -548,16 +579,19 @@ createNdefMessage(ndefRecords: NdefRecord[]): [NdefMessage](js-apis-nfctech.md#n ...@@ -548,16 +579,19 @@ createNdefMessage(ndefRecords: NdefRecord[]): [NdefMessage](js-apis-nfctech.md#n
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| **参数名** | **类型** | **必填** | **说明** | | **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| ndefRecords | [NdefRecord](js-apis-nfcTag.md#ndefrecord9)[] | 是 | NDEF标签的Record列表,详见NDEF技术规范《NFCForum-TS-NDEF_1.0》。 | | ndefRecords | [NdefRecord](js-apis-nfcTag.md#ndefrecord9)[] | 是 | NDEF标签的Record列表,详见NDEF技术规范《NFCForum-TS-NDEF_1.0》。 |
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| [NdefMessage](js-apis-nfctech.md#ndefmessage9) | NDEF标签的Message,详见NDEF技术规范《NFCForum-TS-NDEF_1.0》。| | [NdefMessage](js-apis-nfctech.md#ndefmessage9) | NDEF标签的Message,详见NDEF技术规范《NFCForum-TS-NDEF_1.0》。|
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -581,30 +615,30 @@ NFC服务在读取到标签时给出的对象,通过改对象属性,应用 ...@@ -581,30 +615,30 @@ NFC服务在读取到标签时给出的对象,通过改对象属性,应用
**需要权限**:ohos.permission.NFC_TAG **需要权限**:ohos.permission.NFC_TAG
| **参数名** | **类型** | **说明** | | **名称** | **类型** | **可读** | **可写** | **说明** |
| -------- | -------- | -------- | | -------- | -------- | -------- | -------- | -------- |
| uid<sup>9+</sup> | number[] | 标签的uid,每个number值是十六进制表示,范围是0x00~0xFF。 | | uid<sup>9+</sup> | number[] | 是 | 否 | 标签的uid,每个number值是十六进制表示,范围是0x00~0xFF。 |
| technology<sup>9+</sup> | number[] | 支持的技术类型,每个number值表示所支持技术类型的常量值。 | | technology<sup>9+</sup> | number[] | 是 | 否 | 支持的技术类型,每个number值表示所支持技术类型的常量值。 |
| supportedProfiles | number[] | 支持的技术类型,从API9开始不支持,使用technology替代。 | | supportedProfiles | number[] | 是 | 否 | 支持的技术类型,从API9开始不支持,使用technology替代。 |
## NdefRecord<sup>9+</sup> ## NdefRecord<sup>9+</sup>
NDEF标签Record属性的定义,参考NDEF标签技术规范《NFCForum-TS-NDEF_1.0》的定义细节。 NDEF标签Record属性的定义,参考NDEF标签技术规范《NFCForum-TS-NDEF_1.0》的定义细节。
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
| **参数名** | **类型** | **说明** | | **名称** | **类型** | **可读** | **可写** | **说明** |
| -------- | -------- | -------- | | -------- | -------- | -------- | -------- | -------- |
| tnf | number | NDEF Record的TNF(Type Name Field)。 | | tnf | number | 是 | 否 | NDEF Record的TNF(Type Name Field)。 |
| rtdType| number[] | NDEF Record的RTD(Record Type Definition)类型值,每个number十六进制表示,范围是0x00~0xFF。 | | rtdType| number[] | 是 | 否 | NDEF Record的RTD(Record Type Definition)类型值,每个number十六进制表示,范围是0x00~0xFF。 |
| id | number[] | NDEF Record的ID,每个number十六进制表示,范围是0x00~0xFF。| | id | number[] | 是 | 否 | NDEF Record的ID,每个number十六进制表示,范围是0x00~0xFF。|
| payload | number[] | NDEF Record的PAYLOAD,每个number十六进制表示,范围是0x00~0xFF。 | | payload | number[] | 是 | 否 | NDEF Record的PAYLOAD,每个number十六进制表示,范围是0x00~0xFF。 |
## 技术类型定义 ## 技术类型定义
NFC Tag有多种不同的技术类型,定义常量描述不同的技术类型。 NFC Tag有多种不同的技术类型,定义常量描述不同的技术类型。
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
| **参数名** | **常量值** | **说明** | | **名称** | **值** | **说明** |
| -------- | -------- | -------- | | -------- | -------- | -------- |
| NFC_A | 1 | NFC-A (ISO 14443-3A)技术。| | NFC_A | 1 | NFC-A (ISO 14443-3A)技术。|
| NFC_B | 2 | NFC-A (ISO 14443-3B)技术。| | NFC_B | 2 | NFC-A (ISO 14443-3B)技术。|
...@@ -621,7 +655,7 @@ NDEF Record的TNF(Type Name Field)类型值,参考NDEF标签技术规范《NFC ...@@ -621,7 +655,7 @@ NDEF Record的TNF(Type Name Field)类型值,参考NDEF标签技术规范《NFC
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
| **参数名** | **常量值** | **说明** | | **名称** | **值** | **说明** |
| -------- | -------- | -------- | | -------- | -------- | -------- |
| TNF_EMPTY | 0x0 | Empty。| | TNF_EMPTY | 0x0 | Empty。|
| TNF_WELL_KNOWN | 0x01 | NFC Forum well-known type [NFC RTD]。| | TNF_WELL_KNOWN | 0x01 | NFC Forum well-known type [NFC RTD]。|
...@@ -636,7 +670,7 @@ NDEF Record的RTD(Record Type Definition)类型值,参考NDEF标签技术规 ...@@ -636,7 +670,7 @@ NDEF Record的RTD(Record Type Definition)类型值,参考NDEF标签技术规
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
| **参数名** | **常量值** | **说明** | | **名称** | **值** | **说明** |
| -------- | -------- | -------- | | -------- | -------- | -------- |
| RTD_TEXT<sup>9+</sup> | [0x54] | 文本类型的NDEF Record。| | RTD_TEXT<sup>9+</sup> | [0x54] | 文本类型的NDEF Record。|
| RTD_URI<sup>9+</sup> | [0x55] | URI类型的NDEF Record。| | RTD_URI<sup>9+</sup> | [0x55] | URI类型的NDEF Record。|
...@@ -646,7 +680,7 @@ NFC Forum标准里面Tag类型的定义。 ...@@ -646,7 +680,7 @@ NFC Forum标准里面Tag类型的定义。
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
| **参数名** | **常量值** | **说明** | | **名称** | **值** | **说明** |
| -------- | -------- | -------- | | -------- | -------- | -------- |
| NFC_FORUM_TYPE_1 | 1 | NFC论坛类型1。 | | NFC_FORUM_TYPE_1 | 1 | NFC论坛类型1。 |
| NFC_FORUM_TYPE_2 | 2 | NFC论坛类型2。 | | NFC_FORUM_TYPE_2 | 2 | NFC论坛类型2。 |
...@@ -659,7 +693,7 @@ MIFARE Classic标签类型的定义。 ...@@ -659,7 +693,7 @@ MIFARE Classic标签类型的定义。
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
| **参数名** | **常量值** | **说明** | | **名称** | **值** | **说明** |
| -------- | -------- | -------- | | -------- | -------- | -------- |
| TYPE_UNKNOWN | 0 | 未知的MIFARE类型。 | | TYPE_UNKNOWN | 0 | 未知的MIFARE类型。 |
| TYPE_CLASSIC | 1 | MIFARE Classic类型。| | TYPE_CLASSIC | 1 | MIFARE Classic类型。|
...@@ -671,7 +705,7 @@ MIFARE Classic标签存储大小的定义。 ...@@ -671,7 +705,7 @@ MIFARE Classic标签存储大小的定义。
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
| **参数名** | **常量值** | **说明** | | **名称** | **值** | **说明** |
| -------- | -------- | -------- | | -------- | -------- | -------- |
| MC_SIZE_MINI | 320 | 每个标签5个扇区,每个扇区4个块。 | | MC_SIZE_MINI | 320 | 每个标签5个扇区,每个扇区4个块。 |
| MC_SIZE_1K | 1024 | 每个标签16个扇区,每个扇区4个块。| | MC_SIZE_1K | 1024 | 每个标签16个扇区,每个扇区4个块。|
...@@ -683,9 +717,9 @@ MIFARE Ultralight标签类型的定义。 ...@@ -683,9 +717,9 @@ MIFARE Ultralight标签类型的定义。
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
| **参数名** | **常量值** | **说明** | | **名称** | **值** | **说明** |
| -------- | -------- | -------- | | -------- | -------- | -------- |
| TYPE_UNKOWN | 0 | 未知的 MIFARE 类型。 | | TYPE_UNKNOWN | 0 | 未知的 MIFARE 类型。 |
| TYPE_ULTRALIGHT | 1 | MIFARE Ultralight类型。| | TYPE_ULTRALIGHT | 1 | MIFARE Ultralight类型。|
| TYPE_ULTRALIGHT_C | 2 | MIFARE UltralightC 类型。 | | TYPE_ULTRALIGHT_C | 2 | MIFARE UltralightC 类型。 |
<!--no_check--> <!--no_check-->
\ No newline at end of file
...@@ -13,7 +13,7 @@ import tag from '@ohos.nfc.tag'; ...@@ -13,7 +13,7 @@ import tag from '@ohos.nfc.tag';
## NfcATag ## NfcATag
NfcATag 提供 NFC-A(ISO 14443-3A)技术的属性和I/O操作的访问,继承自TagSession NfcATag 提供 NFC-A(ISO 14443-3A)技术的属性和I/O操作的访问,继承自[TagSession](js-apis-tagSession.md)
TagSession是所有NFC Tag技术类型的基类, 提供建立连接和发送数据等共同接口。具体请参见[TagSession](js-apis-tagSession.md) TagSession是所有NFC Tag技术类型的基类, 提供建立连接和发送数据等共同接口。具体请参见[TagSession](js-apis-tagSession.md)
...@@ -268,11 +268,13 @@ getHistoricalBytes(): number[] ...@@ -268,11 +268,13 @@ getHistoricalBytes(): number[]
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| number[] | IsoDepTag 标签的历史字节,每个number十六进制表示,范围是0x00~0xFF。如果该IsoDep类型Tag是基于NfcB技术的,则该返回值为空。| | number[] | IsoDepTag 标签的历史字节,每个number十六进制表示,范围是0x00~0xFF。如果该IsoDep类型Tag是基于NfcB技术的,则该返回值为空。|
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -290,11 +292,13 @@ getHiLayerResponse(): number[] ...@@ -290,11 +292,13 @@ getHiLayerResponse(): number[]
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| number[] | IsoDepTag 标签的更高层响应字节,每个number十六进制表示,范围是0x00~0xFF。如果该IsoDep类型Tag是基于NfcA技术的,则该返回值为空。| | number[] | IsoDepTag 标签的更高层响应字节,每个number十六进制表示,范围是0x00~0xFF。如果该IsoDep类型Tag是基于NfcA技术的,则该返回值为空。|
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -314,17 +318,20 @@ isExtendedApduSupported(): Promise&lt;boolean&gt; ...@@ -314,17 +318,20 @@ isExtendedApduSupported(): Promise&lt;boolean&gt;
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| Promise&lt;boolean&gt; | 检查结果,true: 支持, false: 不支持。| | Promise&lt;boolean&gt; | 检查结果,true: 支持, false: 不支持。|
**错误码:** **错误码:**
以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md) 以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md)
| 错误码ID | 错误信息| | 错误码ID | 错误信息|
| ------- | -------| | ------- | -------|
| 3100201 | Tag running state is abnormal in service. | | 3100201 | Tag running state is abnormal in service. |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -361,16 +368,20 @@ isExtendedApduSupported(callback: AsyncCallback\<boolean>): void ...@@ -361,16 +368,20 @@ isExtendedApduSupported(callback: AsyncCallback\<boolean>): void
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| callback | AsyncCallback\<boolean> | 是 | 回调函数,true: 支持, false: 不支持。 | | callback | AsyncCallback\<boolean> | 是 | 回调函数,true: 支持, false: 不支持。 |
**错误码:** **错误码:**
以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md) 以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md)
| 错误码ID | 错误信息| | 错误码ID | 错误信息|
| ------- | -------| | ------- | -------|
| 3100201 | Tag running state is abnormal in service. | | 3100201 | Tag running state is abnormal in service. |
**示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -401,18 +412,20 @@ try { ...@@ -401,18 +412,20 @@ try {
### NdefMessage.getNdefRecords<sup>9+</sup> ### NdefMessage.getNdefRecords<sup>9+</sup>
getNdefRecords(): [NdefRecord](js-apis-nfcTag.md#ndefrecord9)[] getNdefRecords(): [tag.NdefRecord](js-apis-nfcTag.md#ndefrecord9)[]
获取NDEF消息中的所有记录。 获取NDEF消息中的所有记录。
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| [NdefRecord](js-apis-nfcTag.md#ndefrecord9)[] | NDEF标签的Record列表,详见NDEF技术规范《NFCForum-TS-NDEF_1.0》。 | | [tag.NdefRecord](js-apis-nfcTag.md#ndefrecord9)[] | NDEF标签的Record列表,详见NDEF技术规范《NFCForum-TS-NDEF_1.0》。 |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -434,18 +447,20 @@ TagSession是所有NFC Tag技术类型的基类, 提供建立连接和发送 ...@@ -434,18 +447,20 @@ TagSession是所有NFC Tag技术类型的基类, 提供建立连接和发送
### NdefTag.getNdefTagType<sup>9+</sup> ### NdefTag.getNdefTagType<sup>9+</sup>
getNdefTagType(): NfcForumType getNdefTagType(): [tag.NfcForumType](js-apis-nfcTag.md#nfcforumtype9)
获取NDEF标签的类型。 获取NDEF标签的类型。
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| [NfcForumType](js-apis-nfcTag.md#nfcforumtype9) | NDEF标签类型,包括NFC FORUM TYPE 1/2/3/4等。| | [tag.NfcForumType](js-apis-nfcTag.md#nfcforumtype9) | NDEF标签类型,包括NFC FORUM TYPE 1/2/3/4等。|
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -456,13 +471,14 @@ console.log("ndef ndefTagType: " + ndefTagType); ...@@ -456,13 +471,14 @@ console.log("ndef ndefTagType: " + ndefTagType);
### NdefTag.getNdefMessage<sup>9+</sup> ### NdefTag.getNdefMessage<sup>9+</sup>
getNdefMessage(): NdefMessage getNdefMessage(): [NdefMessage](#ndefmessage9)
获取发现NDEF标签时,从标签读取的Message。 获取发现NDEF标签时,从标签读取的Message。
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| [NdefMessage](#ndefmessage9) | NDEF标签的Message,详见NDEF技术规范《NFCForum-TS-NDEF_1.0》。| | [NdefMessage](#ndefmessage9) | NDEF标签的Message,详见NDEF技术规范《NFCForum-TS-NDEF_1.0》。|
...@@ -485,11 +501,13 @@ isNdefWritable(): boolean; ...@@ -485,11 +501,13 @@ isNdefWritable(): boolean;
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| boolean | 检查结果,true: 可写, false: 不可写。| | boolean | 检查结果,true: 可写, false: 不可写。|
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -500,7 +518,7 @@ console.log("ndef isNdefWritable: " + isWritable); ...@@ -500,7 +518,7 @@ console.log("ndef isNdefWritable: " + isWritable);
### NdefTag.readNdef<sup>9+</sup> ### NdefTag.readNdef<sup>9+</sup>
readNdef(): Promise\<NdefMessage> readNdef(): Promise\<[NdefMessage](#ndefmessage9)>
读取标签上的NDEF消息,使用Promise方式作为异步方法。 读取标签上的NDEF消息,使用Promise方式作为异步方法。
...@@ -509,17 +527,20 @@ readNdef(): Promise\<NdefMessage> ...@@ -509,17 +527,20 @@ readNdef(): Promise\<NdefMessage>
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| Promise\<[NdefMessage](#ndefmessage9)> | 以Promise形式返回从NDEF标签中读取到的Message数据对象。| | Promise\<[NdefMessage](#ndefmessage9)> | 以Promise形式返回从NDEF标签中读取到的Message数据对象。|
**错误码:** **错误码:**
以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md) 以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md)
| 错误码ID | 错误信息| | 错误码ID | 错误信息|
| ------- | -------| | ------- | -------|
| 3100201 | Tag running state is abnormal in service. | | 3100201 | Tag running state is abnormal in service. |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -555,17 +576,20 @@ readNdef(callback: AsyncCallback\<[NdefMessage](#ndefmessage9)>): void ...@@ -555,17 +576,20 @@ readNdef(callback: AsyncCallback\<[NdefMessage](#ndefmessage9)>): void
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| callback | AsyncCallback\<[NdefMessage](#ndefmessage9)> | 是 | 回调函数,返回从NDEF标签中读取到的Message信息。| | callback | AsyncCallback\<[NdefMessage](#ndefmessage9)> | 是 | 回调函数,返回从NDEF标签中读取到的Message信息。|
**错误码:** **错误码:**
以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md) 以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md)
| 错误码ID | 错误信息| | 错误码ID | 错误信息|
| ------- | -------| | ------- | -------|
| 3100201 | Tag running state is abnormal in service. | | 3100201 | Tag running state is abnormal in service. |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -603,17 +627,20 @@ writeNdef(msg: NdefMessage): Promise\<void>; ...@@ -603,17 +627,20 @@ writeNdef(msg: NdefMessage): Promise\<void>;
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| msg | NdefMessage | 是 | NDEF Message数据对象。| | msg | NdefMessage | 是 | NDEF Message数据对象。|
**错误码:** **错误码:**
以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md) 以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md)
| 错误码ID | 错误信息| | 错误码ID | 错误信息|
| ------- | -------| | ------- | -------|
| 3100201 | Tag running state is abnormal in service. | | 3100201 | Tag running state is abnormal in service. |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -643,7 +670,7 @@ try { ...@@ -643,7 +670,7 @@ try {
### NdefTag.writeNdef<sup>9+</sup> ### NdefTag.writeNdef<sup>9+</sup>
writeNdef(msg: NdefMessage, callback: AsyncCallback\<void>): void writeNdef(msg: [NdefMessage](#ndefmessage9), callback: AsyncCallback\<void>): void
将NDEF Message数据对象写入此标签,使用AsyncCallback方式作为异步方法。 将NDEF Message数据对象写入此标签,使用AsyncCallback方式作为异步方法。
...@@ -652,18 +679,21 @@ writeNdef(msg: NdefMessage, callback: AsyncCallback\<void>): void ...@@ -652,18 +679,21 @@ writeNdef(msg: NdefMessage, callback: AsyncCallback\<void>): void
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| msg | NdefMessage | 是 | NDEF Message数据对象。 | | msg | [NdefMessage](#ndefmessage9) | 是 | NDEF Message数据对象。 |
| callback | AsyncCallback\<void> | 是 | 回调函数。 | | callback | AsyncCallback\<void> | 是 | 回调函数。 |
**错误码:** **错误码:**
以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md) 以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md)
| 错误码ID | 错误信息| | 错误码ID | 错误信息|
| ------- | -------| | ------- | -------|
| 3100201 | Tag running state is abnormal in service. | | 3100201 | Tag running state is abnormal in service. |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -704,17 +734,20 @@ canSetReadOnly(): boolean ...@@ -704,17 +734,20 @@ canSetReadOnly(): boolean
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| boolean| true: NDEF标签可设置为只读, false: NDEF标签不可设置为只读。 | | boolean| true: NDEF标签可设置为只读, false: NDEF标签不可设置为只读。 |
**错误码:** **错误码:**
以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md) 以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md)
| 错误码ID | 错误信息| | 错误码ID | 错误信息|
| ------- | -------| | ------- | -------|
| 3100201 | Tag running state is abnormal in service. | | 3100201 | Tag running state is abnormal in service. |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -734,12 +767,14 @@ setReadOnly(): Promise\<void> ...@@ -734,12 +767,14 @@ setReadOnly(): Promise\<void>
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**错误码:** **错误码:**
以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md) 以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md)
| 错误码ID | 错误信息| | 错误码ID | 错误信息|
| ------- | -------| | ------- | -------|
| 3100201 | Tag running state is abnormal in service. | | 3100201 | Tag running state is abnormal in service. |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -775,17 +810,20 @@ setReadOnly(callback: AsyncCallback\<void>): void ...@@ -775,17 +810,20 @@ setReadOnly(callback: AsyncCallback\<void>): void
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| callback | AsyncCallback\<void> | 是 | 回调函数。 | | callback | AsyncCallback\<void> | 是 | 回调函数。 |
**错误码:** **错误码:**
以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md) 以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md)
| 错误码ID | 错误信息| | 错误码ID | 错误信息|
| ------- | -------| | ------- | -------|
| 3100201 | Tag running state is abnormal in service. | | 3100201 | Tag running state is abnormal in service. |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -814,23 +852,26 @@ try { ...@@ -814,23 +852,26 @@ try {
### NdefTag.getNdefTagTypeString<sup>9+</sup> ### NdefTag.getNdefTagTypeString<sup>9+</sup>
getNdefTagTypeString(type: [NfcForumType](js-apis-nfcTag.md#nfcforumtype9)): string getNdefTagTypeString(type: [tag.NfcForumType](js-apis-nfcTag.md#nfcforumtype9)): string
将NFC论坛类型,转换为NFC论坛中定义的字符串描述。 将NFC论坛类型,转换为NFC论坛中定义的字符串描述。
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| type | [NfcForumType](js-apis-nfcTag.md#nfcforumtype9) | 是 | NDEF标签类型,包括NFC FORUM TYPE 1/2/3/4等。 | | type | [tag.NfcForumType](js-apis-nfcTag.md#nfcforumtype9) | 是 | NDEF标签类型,包括NFC FORUM TYPE 1/2/3/4等。 |
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| string | NFC论坛类型的字符串描述。| | string | NFC论坛类型的字符串描述。|
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -846,7 +887,7 @@ try { ...@@ -846,7 +887,7 @@ try {
## MifareClassicTag<sup>9+</sup> ## MifareClassicTag<sup>9+</sup>
MifareClassicTag提供对MIFARE Classic属性和I/O操作的访问,继承自TagSession MifareClassicTag提供对MIFARE Classic属性和I/O操作的访问,继承自[TagSession](js-apis-tagSession.md)
TagSession是所有NFC Tag技术类型的基类, 提供建立连接和发送数据等共同接口。具体请参见[TagSession](js-apis-tagSession.md) TagSession是所有NFC Tag技术类型的基类, 提供建立连接和发送数据等共同接口。具体请参见[TagSession](js-apis-tagSession.md)
...@@ -863,6 +904,7 @@ authenticateSector(sectorIndex: number, key: number[], isKeyA: boolean): Promise ...@@ -863,6 +904,7 @@ authenticateSector(sectorIndex: number, key: number[], isKeyA: boolean): Promise
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| sectorIndex | number | 是 | 待验证的扇区索引,从0开始。 | | sectorIndex | number | 是 | 待验证的扇区索引,从0开始。 |
...@@ -870,12 +912,14 @@ authenticateSector(sectorIndex: number, key: number[], isKeyA: boolean): Promise ...@@ -870,12 +912,14 @@ authenticateSector(sectorIndex: number, key: number[], isKeyA: boolean): Promise
| isKeyA | boolean | 是 | isKeyA标志。true 表示KeyA,false 表示KeyB。| | isKeyA | boolean | 是 | isKeyA标志。true 表示KeyA,false 表示KeyB。|
**错误码:** **错误码:**
以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md) 以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md)
| 错误码ID | 错误信息| | 错误码ID | 错误信息|
| ------- | -------| | ------- | -------|
| 3100201 | Tag running state is abnormal in service. | | 3100201 | Tag running state is abnormal in service. |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -913,6 +957,7 @@ authenticateSector(sectorIndex: number, key: number[], isKeyA: boolean, callback ...@@ -913,6 +957,7 @@ authenticateSector(sectorIndex: number, key: number[], isKeyA: boolean, callback
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| sectorIndex | number | 是 | 待验证的扇区索引,从0开始。 | | sectorIndex | number | 是 | 待验证的扇区索引,从0开始。 |
...@@ -921,6 +966,7 @@ authenticateSector(sectorIndex: number, key: number[], isKeyA: boolean, callback ...@@ -921,6 +966,7 @@ authenticateSector(sectorIndex: number, key: number[], isKeyA: boolean, callback
| callback | AsyncCallback\<void> | 是 | 回调函数。| | callback | AsyncCallback\<void> | 是 | 回调函数。|
**错误码:** **错误码:**
以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md) 以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md)
| 错误码ID | 错误信息| | 错误码ID | 错误信息|
| ------- | -------| | ------- | -------|
...@@ -966,22 +1012,26 @@ readSingleBlock(blockIndex: number): Promise\<number[]> ...@@ -966,22 +1012,26 @@ readSingleBlock(blockIndex: number): Promise\<number[]>
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| blockIndex | number | 是 | 要读取的块索引,从0开始。 | | blockIndex | number | 是 | 要读取的块索引,从0开始。 |
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| Promise\<number[]> | 读取的块数据。 | | Promise\<number[]> | 读取的块数据。 |
**错误码:** **错误码:**
以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md) 以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md)
| 错误码ID | 错误信息| | 错误码ID | 错误信息|
| ------- | -------| | ------- | -------|
| 3100201 | Tag running state is abnormal in service. | | 3100201 | Tag running state is abnormal in service. |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -1018,18 +1068,21 @@ readSingleBlock(blockIndex: number, callback: AsyncCallback\<number[]>): void ...@@ -1018,18 +1068,21 @@ readSingleBlock(blockIndex: number, callback: AsyncCallback\<number[]>): void
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| blockIndex | number | 是 | 要读取的块索引,从0开始。 | | blockIndex | number | 是 | 要读取的块索引,从0开始。 |
| callback | AsyncCallback\<number[]> | 是 | 回调函数,返回读取到的数据。 | | callback | AsyncCallback\<number[]> | 是 | 回调函数,返回读取到的数据。 |
**错误码:** **错误码:**
以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md) 以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md)
| 错误码ID | 错误信息| | 错误码ID | 错误信息|
| ------- | -------| | ------- | -------|
| 3100201 | Tag running state is abnormal in service. | | 3100201 | Tag running state is abnormal in service. |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -1068,18 +1121,21 @@ writeSingleBlock(blockIndex: number, data: number[]): Promise\<void> ...@@ -1068,18 +1121,21 @@ writeSingleBlock(blockIndex: number, data: number[]): Promise\<void>
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| blockIndex | number | 是 | 要写入的块索引,从0开始。 | | blockIndex | number | 是 | 要写入的块索引,从0开始。 |
| data | number[] | 是 | 要写入的数据,大小必须是16个字节。 | | data | number[] | 是 | 要写入的数据,大小必须是16个字节。 |
**错误码:** **错误码:**
以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md) 以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md)
| 错误码ID | 错误信息| | 错误码ID | 错误信息|
| ------- | -------| | ------- | -------|
| 3100201 | Tag running state is abnormal in service. | | 3100201 | Tag running state is abnormal in service. |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -1095,7 +1151,8 @@ if (!mifareClassic.isTagConnected()) { ...@@ -1095,7 +1151,8 @@ if (!mifareClassic.isTagConnected()) {
try { try {
let blockIndex = 1; // change it to be correct index. let blockIndex = 1; // change it to be correct index.
let rawData = [0x01, 0x02, ..., 0x0F, 0x10]; // MUST be 16 bytes, change it to be correct data. let rawData = [0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A,
0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10]; // MUST be 16 bytes, change it to be correct data.
mifareClassic.writeSingleBlock(blockIndex, rawData).then(() => { mifareClassic.writeSingleBlock(blockIndex, rawData).then(() => {
console.log("mifareClassic writeSingleBlock Promise success."); console.log("mifareClassic writeSingleBlock Promise success.");
}).catch((err)=> { }).catch((err)=> {
...@@ -1117,6 +1174,7 @@ writeSingleBlock(blockIndex: number, data: number[], callback: AsyncCallback\<vo ...@@ -1117,6 +1174,7 @@ writeSingleBlock(blockIndex: number, data: number[], callback: AsyncCallback\<vo
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| blockIndex | number | 是 | 要写入的块索引,从0开始。 | | blockIndex | number | 是 | 要写入的块索引,从0开始。 |
...@@ -1124,12 +1182,14 @@ writeSingleBlock(blockIndex: number, data: number[], callback: AsyncCallback\<vo ...@@ -1124,12 +1182,14 @@ writeSingleBlock(blockIndex: number, data: number[], callback: AsyncCallback\<vo
| callback | AsyncCallback\<void> | 是 | 回调函数。 | | callback | AsyncCallback\<void> | 是 | 回调函数。 |
**错误码:** **错误码:**
以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md) 以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md)
| 错误码ID | 错误信息| | 错误码ID | 错误信息|
| ------- | -------| | ------- | -------|
| 3100201 | Tag running state is abnormal in service. | | 3100201 | Tag running state is abnormal in service. |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -1145,7 +1205,8 @@ if (!mifareClassic.isTagConnected()) { ...@@ -1145,7 +1205,8 @@ if (!mifareClassic.isTagConnected()) {
try { try {
let blockIndex = 1; // change it to be correct index. let blockIndex = 1; // change it to be correct index.
let rawData = [0x01, 0x02, ..., 0x15, 0x16]; // MUST be 16 bytes, change it to be correct data. let rawData = [0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A,
0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10]; // MUST be 16 bytes, change it to be correct data.
mifareClassic.writeSingleBlock(blockIndex, rawData, (err)=> { mifareClassic.writeSingleBlock(blockIndex, rawData, (err)=> {
if (err) { if (err) {
console.log("mifareClassic writeSingleBlock AsyncCallback err: " + err); console.log("mifareClassic writeSingleBlock AsyncCallback err: " + err);
...@@ -1169,18 +1230,21 @@ incrementBlock(blockIndex: number, value: number): Promise\<void> ...@@ -1169,18 +1230,21 @@ incrementBlock(blockIndex: number, value: number): Promise\<void>
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| blockIndex | number | 是 | 要指定增加的块索引,从0开始。 | | blockIndex | number | 是 | 要指定增加的块索引,从0开始。 |
| value | number | 是 | 要指定增加的数据,非负数。 | | value | number | 是 | 要指定增加的数据,非负数。 |
**错误码:** **错误码:**
以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md) 以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md)
| 错误码ID | 错误信息| | 错误码ID | 错误信息|
| ------- | -------| | ------- | -------|
| 3100201 | Tag running state is abnormal in service. | | 3100201 | Tag running state is abnormal in service. |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -1218,6 +1282,7 @@ incrementBlock(blockIndex: number, value: number, callback: AsyncCallback\<void> ...@@ -1218,6 +1282,7 @@ incrementBlock(blockIndex: number, value: number, callback: AsyncCallback\<void>
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| blockIndex | number | 是 | 要被运算的块索引,从0开始。 | | blockIndex | number | 是 | 要被运算的块索引,从0开始。 |
...@@ -1225,12 +1290,14 @@ incrementBlock(blockIndex: number, value: number, callback: AsyncCallback\<void> ...@@ -1225,12 +1290,14 @@ incrementBlock(blockIndex: number, value: number, callback: AsyncCallback\<void>
| callback | AsyncCallback\<void> | 是 | 回调函数。 | | callback | AsyncCallback\<void> | 是 | 回调函数。 |
**错误码:** **错误码:**
以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md) 以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md)
| 错误码ID | 错误信息| | 错误码ID | 错误信息|
| ------- | -------| | ------- | -------|
| 3100201 | Tag running state is abnormal in service. | | 3100201 | Tag running state is abnormal in service. |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -1270,18 +1337,21 @@ decrementBlock(blockIndex: number, value: number): Promise\<void> ...@@ -1270,18 +1337,21 @@ decrementBlock(blockIndex: number, value: number): Promise\<void>
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| blockIndex | number | 是 | 要被运算的块索引,从0开始。 | | blockIndex | number | 是 | 要被运算的块索引,从0开始。 |
| value | number | 是 | 要减少的数值,非负数。 | | value | number | 是 | 要减少的数值,非负数。 |
**错误码:** **错误码:**
以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md) 以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md)
| 错误码ID | 错误信息| | 错误码ID | 错误信息|
| ------- | -------| | ------- | -------|
| 3100201 | Tag running state is abnormal in service. | | 3100201 | Tag running state is abnormal in service. |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -1319,6 +1389,7 @@ decrementBlock(blockIndex: number, value: number, callback: AsyncCallback\<void> ...@@ -1319,6 +1389,7 @@ decrementBlock(blockIndex: number, value: number, callback: AsyncCallback\<void>
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| blockIndex | number | 是 | 要被运算的块索引,从0开始。 | | blockIndex | number | 是 | 要被运算的块索引,从0开始。 |
...@@ -1326,12 +1397,14 @@ decrementBlock(blockIndex: number, value: number, callback: AsyncCallback\<void> ...@@ -1326,12 +1397,14 @@ decrementBlock(blockIndex: number, value: number, callback: AsyncCallback\<void>
| callback | AsyncCallback\<void> | 是 | 回调函数。 | | callback | AsyncCallback\<void> | 是 | 回调函数。 |
**错误码:** **错误码:**
以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md) 以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md)
| 错误码ID | 错误信息| | 错误码ID | 错误信息|
| ------- | -------| | ------- | -------|
| 3100201 | Tag running state is abnormal in service. | | 3100201 | Tag running state is abnormal in service. |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -1371,17 +1444,20 @@ transferToBlock(blockIndex: number): Promise\<void> ...@@ -1371,17 +1444,20 @@ transferToBlock(blockIndex: number): Promise\<void>
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| blockIndex | number | 是 | 被操作的块的索引,从0开始。 | | blockIndex | number | 是 | 被操作的块的索引,从0开始。 |
**错误码:** **错误码:**
以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md) 以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md)
| 错误码ID | 错误信息| | 错误码ID | 错误信息|
| ------- | -------| | ------- | -------|
| 3100201 | Tag running state is abnormal in service. | | 3100201 | Tag running state is abnormal in service. |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -1418,18 +1494,21 @@ transferToBlock(blockIndex: number, callback: AsyncCallback\<void>): void ...@@ -1418,18 +1494,21 @@ transferToBlock(blockIndex: number, callback: AsyncCallback\<void>): void
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| blockIndex | number | 是 | 被操作的块的索引,从0开始。 | | blockIndex | number | 是 | 被操作的块的索引,从0开始。 |
| callback | AsyncCallback\<void> | 是 | 回调函数。 | | callback | AsyncCallback\<void> | 是 | 回调函数。 |
**错误码:** **错误码:**
以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md) 以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md)
| 错误码ID | 错误信息| | 错误码ID | 错误信息|
| ------- | -------| | ------- | -------|
| 3100201 | Tag running state is abnormal in service. | | 3100201 | Tag running state is abnormal in service. |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -1468,17 +1547,20 @@ restoreFromBlock(blockIndex: number): Promise\<void> ...@@ -1468,17 +1547,20 @@ restoreFromBlock(blockIndex: number): Promise\<void>
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| blockIndex | number | 是 | 被操作的块的索引,从0开始。| | blockIndex | number | 是 | 被操作的块的索引,从0开始。|
**错误码:** **错误码:**
以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md) 以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md)
| 错误码ID | 错误信息| | 错误码ID | 错误信息|
| ------- | -------| | ------- | -------|
| 3100201 | Tag running state is abnormal in service. | | 3100201 | Tag running state is abnormal in service. |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -1515,18 +1597,21 @@ restoreFromBlock(blockIndex: number, callback: AsyncCallback\<void>): void ...@@ -1515,18 +1597,21 @@ restoreFromBlock(blockIndex: number, callback: AsyncCallback\<void>): void
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| blockIndex | number | 是 | 被操作的块的索引,从0开始。 | | blockIndex | number | 是 | 被操作的块的索引,从0开始。 |
| callback | AsyncCallback\<void> | 是 | 回调函数。| | callback | AsyncCallback\<void> | 是 | 回调函数。|
**错误码:** **错误码:**
以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md) 以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md)
| 错误码ID | 错误信息| | 错误码ID | 错误信息|
| ------- | -------| | ------- | -------|
| 3100201 | Tag running state is abnormal in service. | | 3100201 | Tag running state is abnormal in service. |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -1563,11 +1648,13 @@ getSectorCount(): number ...@@ -1563,11 +1648,13 @@ getSectorCount(): number
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| number | 标签中的扇区数量。| | number | 标签中的扇区数量。|
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -1585,16 +1672,19 @@ getBlockCountInSector(sectorIndex: number): number ...@@ -1585,16 +1672,19 @@ getBlockCountInSector(sectorIndex: number): number
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| sectorIndex | number | 是 | 扇区序号,从0开始。| | sectorIndex | number | 是 | 扇区序号,从0开始。|
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| number | 该扇区内的块数量。| | number | 该扇区内的块数量。|
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -1611,18 +1701,20 @@ try { ...@@ -1611,18 +1701,20 @@ try {
### MifareClassicTag.getType<sup>9+</sup> ### MifareClassicTag.getType<sup>9+</sup>
getType(): [MifareClassicType](js-apis-nfcTag.md#mifareclassictype9) getType(): [tag.MifareClassicType](js-apis-nfcTag.md#mifareclassictype9)
获取MIFARE Classic标签的类型。 获取MIFARE Classic标签的类型。
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| [MifareClassicType](js-apis-nfcTag.md#mifareclassictype9) | MifareClassic标签的类型。| | [tag.MifareClassicType](js-apis-nfcTag.md#mifareclassictype9) | MifareClassic标签的类型。|
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -1640,11 +1732,13 @@ getTagSize(): number ...@@ -1640,11 +1732,13 @@ getTagSize(): number
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| number | 标签的大小,单位为字节,请参见[MifareClassicSize](js-apis-nfcTag.md#mifareclassicsize9)。| | number | 标签的大小,单位为字节,请参见[MifareClassicSize](js-apis-nfcTag.md#mifareclassicsize9)。|
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -1662,11 +1756,13 @@ isEmulatedTag(): boolean ...@@ -1662,11 +1756,13 @@ isEmulatedTag(): boolean
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| boolean |检查结果,true: 是;false:否。 | | boolean |检查结果,true: 是;false:否。 |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -1684,16 +1780,19 @@ getBlockIndex(sectorIndex: number): number ...@@ -1684,16 +1780,19 @@ getBlockIndex(sectorIndex: number): number
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| sectorIndex | number | 是 | 扇区序号,从0开始。 | | sectorIndex | number | 是 | 扇区序号,从0开始。 |
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| number | 该扇区内的第一个块的序号,从0开始。 | | number | 该扇区内的第一个块的序号,从0开始。 |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -1714,21 +1813,22 @@ getSectorIndex(blockIndex: number): number ...@@ -1714,21 +1813,22 @@ getSectorIndex(blockIndex: number): number
获取包含指定块号的扇区序号。 获取包含指定块号的扇区序号。
**需要权限**:ohos.permission.NFC_TAG
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| blockIndex | number | 是 | 块序号,从0开始。 | | blockIndex | number | 是 | 块序号,从0开始。 |
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| number | 扇区序号,从0开始。 | | number | 扇区序号,从0开始。 |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -1768,17 +1868,20 @@ readMultiplePages(pageIndex: number): Promise\<number[]> ...@@ -1768,17 +1868,20 @@ readMultiplePages(pageIndex: number): Promise\<number[]>
| pageIndex | number | 是 | 要读取页面的索引,从0开始。 | | pageIndex | number | 是 | 要读取页面的索引,从0开始。 |
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| Promise\<number[]> | 读取的4页的数据,共16字节。 | | Promise\<number[]> | 读取的4页的数据,共16字节。 |
**错误码:** **错误码:**
以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md) 以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md)
| 错误码ID | 错误信息| | 错误码ID | 错误信息|
| ------- | -------| | ------- | -------|
| 3100201 | Tag running state is abnormal in service. | | 3100201 | Tag running state is abnormal in service. |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -1816,18 +1919,21 @@ readMultiplePages(pageIndex: number, callback: AsyncCallback\<number[]>): void ...@@ -1816,18 +1919,21 @@ readMultiplePages(pageIndex: number, callback: AsyncCallback\<number[]>): void
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| pageIndex | number | 是 | 要读取页面的索引,从0开始。 | | pageIndex | number | 是 | 要读取页面的索引,从0开始。 |
| callback | AsyncCallback\<number[]> | 是 | 回调函数,返回读取到的数据,共16字节。 | | callback | AsyncCallback\<number[]> | 是 | 回调函数,返回读取到的数据,共16字节。 |
**错误码:** **错误码:**
以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md) 以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md)
| 错误码ID | 错误信息| | 错误码ID | 错误信息|
| ------- | -------| | ------- | -------|
| 3100201 | Tag running state is abnormal in service. | | 3100201 | Tag running state is abnormal in service. |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -1866,18 +1972,21 @@ writeSinglePage(pageIndex: number, data: number[]): Promise\<void> ...@@ -1866,18 +1972,21 @@ writeSinglePage(pageIndex: number, data: number[]): Promise\<void>
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| pageIndex | number | 是 | 要写入页面的索引,从0开始。 | | pageIndex | number | 是 | 要写入页面的索引,从0开始。 |
| data | number[] | 是 | 要写入页面的数据内容,必须是4个字节大小。 | | data | number[] | 是 | 要写入页面的数据内容,必须是4个字节大小。 |
**错误码:** **错误码:**
以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md) 以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md)
| 错误码ID | 错误信息| | 错误码ID | 错误信息|
| ------- | -------| | ------- | -------|
| 3100201 | Tag running state is abnormal in service. | | 3100201 | Tag running state is abnormal in service. |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -1915,6 +2024,7 @@ writeSinglePage(pageIndex: number, data: number[], callback: AsyncCallback\<void ...@@ -1915,6 +2024,7 @@ writeSinglePage(pageIndex: number, data: number[], callback: AsyncCallback\<void
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | ------------------------ | | -------- | ----------------------- | ---- | ------------------------ |
| pageIndex | number | 是 | 要写入页面的索引,从0开始。 | | pageIndex | number | 是 | 要写入页面的索引,从0开始。 |
...@@ -1922,12 +2032,14 @@ writeSinglePage(pageIndex: number, data: number[], callback: AsyncCallback\<void ...@@ -1922,12 +2032,14 @@ writeSinglePage(pageIndex: number, data: number[], callback: AsyncCallback\<void
| callback|AsyncCallback\<void> |是| 回调函数。 | | callback|AsyncCallback\<void> |是| 回调函数。 |
**错误码:** **错误码:**
以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md) 以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md)
| 错误码ID | 错误信息| | 错误码ID | 错误信息|
| ------- | -------| | ------- | -------|
| 3100201 | Tag running state is abnormal in service. | | 3100201 | Tag running state is abnormal in service. |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -1958,18 +2070,20 @@ try { ...@@ -1958,18 +2070,20 @@ try {
### MifareUltralightTag.getType<sup>9+</sup> ### MifareUltralightTag.getType<sup>9+</sup>
getType(): MifareUltralightType getType(): [tag.MifareUltralightType](js-apis-nfcTag.md#mifareultralighttype9)
获取MIFARE Ultralight标签的类型,具体请参见 [MifareUltralightType](js-apis-nfcTag.md#mifareultralighttype9) 获取MIFARE Ultralight标签的类型。
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| MifareUltralightType | MIFARE Ultralight标签的类型,具体请参见 [MifareUltralightType](js-apis-nfcTag.md#mifareultralighttype9)。| | [tag.MifareUltralightType](js-apis-nfcTag.md#mifareultralighttype9) | MIFARE Ultralight标签的类型。|
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -1997,11 +2111,13 @@ format(message: [NdefMessage](#ndefmessage9)): Promise\<void> ...@@ -1997,11 +2111,13 @@ format(message: [NdefMessage](#ndefmessage9)): Promise\<void>
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| message | [NdefMessage](#ndefmessage9) | 是 | 格式化成功时要写入的NDEF消息。可以为null,为null时仅格式化标签,不写入内容。 | | message | [NdefMessage](#ndefmessage9) | 是 | 格式化成功时要写入的NDEF消息。可以为null,为null时仅格式化标签,不写入内容。 |
**错误码:** **错误码:**
以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md) 以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md)
| 错误码ID | 错误信息| | 错误码ID | 错误信息|
| ------- | -------| | ------- | -------|
...@@ -2048,17 +2164,20 @@ format(message: [NdefMessage](#ndefmessage9), callback: AsyncCallback\<void>): v ...@@ -2048,17 +2164,20 @@ format(message: [NdefMessage](#ndefmessage9), callback: AsyncCallback\<void>): v
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| message | [NdefMessage](#ndefmessage9) | 是 | 格式化成功时要写入的Ndef消息。可以为null,为null时仅格式化标签,不写入内容。 | | message | [NdefMessage](#ndefmessage9) | 是 | 格式化成功时要写入的Ndef消息。可以为null,为null时仅格式化标签,不写入内容。 |
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| callback: AsyncCallback\<void> | 回调函数。 | | callback: AsyncCallback\<void> | 回调函数。 |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -2100,17 +2219,20 @@ formatReadOnly(message: [NdefMessage](#ndefmessage9)): Promise\<void> ...@@ -2100,17 +2219,20 @@ formatReadOnly(message: [NdefMessage](#ndefmessage9)): Promise\<void>
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| message | [NdefMessage](#ndefmessage9) | 是 | 格式化成功时要写入的NDEF消息。可以为null,为null时仅格式化标签,不写入内容。 | | message | [NdefMessage](#ndefmessage9) | 是 | 格式化成功时要写入的NDEF消息。可以为null,为null时仅格式化标签,不写入内容。 |
**错误码:** **错误码:**
以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md) 以下错误码的详细介绍请参见[NFC错误码](../errorcodes/errorcode-nfc.md)
| 错误码ID | 错误信息| | 错误码ID | 错误信息|
| ------- | -------| | ------- | -------|
| 3100201 | Tag running state is abnormal in service. | | 3100201 | Tag running state is abnormal in service. |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -2150,17 +2272,20 @@ formatReadOnly(message: [NdefMessage](#ndefmessage9), callback: AsyncCallback\<v ...@@ -2150,17 +2272,20 @@ formatReadOnly(message: [NdefMessage](#ndefmessage9), callback: AsyncCallback\<v
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| message | [NdefMessage](#ndefmessage9) | 是 | 格式化成功时要写入的NDEF消息。可以为null,为null时仅格式化标签,不写入内容。| | message | [NdefMessage](#ndefmessage9) | 是 | 格式化成功时要写入的NDEF消息。可以为null,为null时仅格式化标签,不写入内容。|
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| callback: AsyncCallback\<void> | 回调函数。 | | callback: AsyncCallback\<void> | 回调函数。 |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
......
...@@ -27,8 +27,7 @@ startAbility(parameter: StartAbilityParameter, callback: AsyncCallback\<void>): ...@@ -27,8 +27,7 @@ startAbility(parameter: StartAbilityParameter, callback: AsyncCallback\<void>):
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 |
| 名称 | 类型 | 必填 | 描述 |
| --------- | ----------------------------------------------- | ---- | ----------------- | | --------- | ----------------------------------------------- | ---- | ----------------- |
| parameter | [StartAbilityParameter](js-apis-featureAbility.md#startabilityparameter) | 是 | 指示启动的ability | | parameter | [StartAbilityParameter](js-apis-featureAbility.md#startabilityparameter) | 是 | 指示启动的ability |
| callback | AsyncCallback\<void> | 是 | 被指定的回调方法 | | callback | AsyncCallback\<void> | 是 | 被指定的回调方法 |
...@@ -59,8 +58,6 @@ particleAbility.startAbility( ...@@ -59,8 +58,6 @@ particleAbility.startAbility(
) )
``` ```
## particleAbility.startAbility ## particleAbility.startAbility
startAbility(parameter: StartAbilityParameter): Promise\<void>; startAbility(parameter: StartAbilityParameter): Promise\<void>;
...@@ -71,8 +68,7 @@ startAbility(parameter: StartAbilityParameter): Promise\<void>; ...@@ -71,8 +68,7 @@ startAbility(parameter: StartAbilityParameter): Promise\<void>;
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 |
| 名称 | 类型 | 必填 | 描述 |
| --------- | ----------------------------------------------- | ---- | ----------------- | | --------- | ----------------------------------------------- | ---- | ----------------- |
| parameter | [StartAbilityParameter](js-apis-featureAbility.md#startabilityparameter) | 是 | 指示启动的ability | | parameter | [StartAbilityParameter](js-apis-featureAbility.md#startabilityparameter) | 是 | 指示启动的ability |
...@@ -117,7 +113,7 @@ terminateSelf(callback: AsyncCallback\<void>): void ...@@ -117,7 +113,7 @@ terminateSelf(callback: AsyncCallback\<void>): void
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------------------- | ---- | -------------------- | | -------- | -------------------- | ---- | -------------------- |
| callback | AsyncCallback\<void> | 是 | 表示被指定的回调方法 | | callback | AsyncCallback\<void> | 是 | 表示被指定的回调方法 |
...@@ -169,7 +165,7 @@ acquireDataAbilityHelper(uri: string): DataAbilityHelper ...@@ -169,7 +165,7 @@ acquireDataAbilityHelper(uri: string): DataAbilityHelper
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| :--- | ------ | ---- | ------------------------ | | :--- | ------ | ---- | ------------------------ |
| uri | string | 是 | 指示要打开的文件的路径。 | | uri | string | 是 | 指示要打开的文件的路径。 |
...@@ -386,7 +382,7 @@ connectAbility(request: Want, options:ConnectOptions): number ...@@ -386,7 +382,7 @@ connectAbility(request: Want, options:ConnectOptions): number
**参数:** **参数:**
| 名称 | 类型 | 必填 | 描述 | | 参数名 | 类型 | 必填 | 说明 |
| ------- | -------------- | ---- | ---------------------------- | | ------- | -------------- | ---- | ---------------------------- |
| request | [Want](js-apis-application-Want.md) | 是 | 表示被连接的ServiceAbility。 | | request | [Want](js-apis-application-Want.md) | 是 | 表示被连接的ServiceAbility。 |
| options | ConnectOptions | 是 | 被指定的回调方法。 | | options | ConnectOptions | 是 | 被指定的回调方法。 |
...@@ -396,7 +392,7 @@ connectAbility(request: Want, options:ConnectOptions): number ...@@ -396,7 +392,7 @@ connectAbility(request: Want, options:ConnectOptions): number
**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core **系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core
| 名称 | 读写属性 | 类型 | 必填 | 描述 | | 参数名 | 读写属性 | 类型 | 必填 | 说明 |
| ------------ | ---- | -------- | ---- | ------------------------- | | ------------ | ---- | -------- | ---- | ------------------------- |
| onConnect | 只读 | function | 是 | 连接成功时的回调函数。 | | onConnect | 只读 | function | 是 | 连接成功时的回调函数。 |
| onDisconnect | 只读 | function | 是 | 连接失败时的回调函数。 | | onDisconnect | 只读 | function | 是 | 连接失败时的回调函数。 |
...@@ -546,7 +542,7 @@ particleAbility.disconnectAbility(connId).then((data) => { ...@@ -546,7 +542,7 @@ particleAbility.disconnectAbility(connId).then((data) => {
**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel **系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel
| 变量 | 值 | 说明 | | 名称 | 值 | 说明 |
| ----------------------------- | ---- | ------------------------------------------------------------ | | ----------------------------- | ---- | ------------------------------------------------------------ |
| INVALID_PARAMETER | -1 | 无效的参数。 | | INVALID_PARAMETER | -1 | 无效的参数。 |
......
...@@ -32,7 +32,7 @@ requestSuspendDelay(reason: string, callback: Callback&lt;void&gt;): DelaySuspen ...@@ -32,7 +32,7 @@ requestSuspendDelay(reason: string, callback: Callback&lt;void&gt;): DelaySuspen
**参数** **参数**
| 参数名 | 类型 | 必填 | 说明 | | 名称 | 类型 | 必填 | 说明 |
| -------- | -------------------- | ---- | ------------------------------ | | -------- | -------------------- | ---- | ------------------------------ |
| reason | string | 是 | 延迟挂起申请的原因。 | | reason | string | 是 | 延迟挂起申请的原因。 |
| callback | Callback&lt;void&gt; | 是 | 延迟即将超时的回调函数,一般在超时前6秒通过此回调通知应用。 | | callback | Callback&lt;void&gt; | 是 | 延迟即将超时的回调函数,一般在超时前6秒通过此回调通知应用。 |
...@@ -86,7 +86,7 @@ getRemainingDelayTime(requestId: number, callback: AsyncCallback&lt;number&gt;): ...@@ -86,7 +86,7 @@ getRemainingDelayTime(requestId: number, callback: AsyncCallback&lt;number&gt;):
**参数** **参数**
| 参数名 | 类型 | 必填 | 说明 | | 名称 | 类型 | 必填 | 说明 |
| --------- | --------------------------- | ---- | ---------------------------------------- | | --------- | --------------------------- | ---- | ---------------------------------------- |
| requestId | number | 是 | 延迟挂起的请求ID。 | | requestId | number | 是 | 延迟挂起的请求ID。 |
| callback | AsyncCallback&lt;number&gt; | 是 | 指定的callback回调方法。用于返回应用程序进入挂起状态之前的剩余时间,以毫秒为单位。 | | callback | AsyncCallback&lt;number&gt; | 是 | 指定的callback回调方法。用于返回应用程序进入挂起状态之前的剩余时间,以毫秒为单位。 |
...@@ -137,7 +137,7 @@ getRemainingDelayTime(requestId: number): Promise&lt;number&gt; ...@@ -137,7 +137,7 @@ getRemainingDelayTime(requestId: number): Promise&lt;number&gt;
**参数** **参数**
| 参数名 | 类型 | 必填 | 说明 | | 名称 | 类型 | 必填 | 说明 |
| --------- | ------ | ---- | ---------- | | --------- | ------ | ---- | ---------- |
| requestId | number | 是 | 延迟挂起的请求ID。 | | requestId | number | 是 | 延迟挂起的请求ID。 |
...@@ -188,7 +188,7 @@ cancelSuspendDelay(requestId: number): void ...@@ -188,7 +188,7 @@ cancelSuspendDelay(requestId: number): void
**参数** **参数**
| 参数名 | 类型 | 必填 | 说明 | | 名称 | 类型 | 必填 | 说明 |
| --------- | ------ | ---- | ---------- | | --------- | ------ | ---- | ---------- |
| requestId | number | 是 | 延迟挂起的请求ID。 | | requestId | number | 是 | 延迟挂起的请求ID。 |
...@@ -231,7 +231,7 @@ startBackgroundRunning(context: Context, bgMode: BackgroundMode, wantAgent: Want ...@@ -231,7 +231,7 @@ startBackgroundRunning(context: Context, bgMode: BackgroundMode, wantAgent: Want
**参数** **参数**
| 参数名 | 类型 | 必填 | 说明 | | 名称 | 类型 | 必填 | 说明 |
| --------- | ---------------------------------- | ---- | ---------------------------------------- | | --------- | ---------------------------------- | ---- | ---------------------------------------- |
| context | Context | 是 | 应用运行的上下文。<br>FA模型的应用Context定义见[Context](js-apis-Context.md)<br>Stage模型的应用Context定义见[Context](js-apis-ability-context.md)。 | | context | Context | 是 | 应用运行的上下文。<br>FA模型的应用Context定义见[Context](js-apis-Context.md)<br>Stage模型的应用Context定义见[Context](js-apis-ability-context.md)。 |
| bgMode | [BackgroundMode](#backgroundmode) | 是 | 向系统申请的后台模式。 | | bgMode | [BackgroundMode](#backgroundmode) | 是 | 向系统申请的后台模式。 |
...@@ -305,7 +305,7 @@ startBackgroundRunning(context: Context, bgMode: BackgroundMode, wantAgent: Want ...@@ -305,7 +305,7 @@ startBackgroundRunning(context: Context, bgMode: BackgroundMode, wantAgent: Want
**参数** **参数**
| 参数名 | 类型 | 必填 | 说明 | | 名称 | 类型 | 必填 | 说明 |
| --------- | ---------------------------------- | ---- | ---------------------------------------- | | --------- | ---------------------------------- | ---- | ---------------------------------------- |
| context | Context | 是 | 应用运行的上下文。<br>FA模型的应用Context定义见[Context](js-apis-Context.md)<br>Stage模型的应用Context定义见[Context](js-apis-ability-context.md)。 | | context | Context | 是 | 应用运行的上下文。<br>FA模型的应用Context定义见[Context](js-apis-Context.md)<br>Stage模型的应用Context定义见[Context](js-apis-ability-context.md)。 |
| bgMode | [BackgroundMode](#backgroundmode) | 是 | 向系统申请的后台模式。 | | bgMode | [BackgroundMode](#backgroundmode) | 是 | 向系统申请的后台模式。 |
...@@ -378,7 +378,7 @@ stopBackgroundRunning(context: Context, callback: AsyncCallback&lt;void&gt;): vo ...@@ -378,7 +378,7 @@ stopBackgroundRunning(context: Context, callback: AsyncCallback&lt;void&gt;): vo
**参数** **参数**
| 参数名 | 类型 | 必填 | 说明 | | 名称 | 类型 | 必填 | 说明 |
| -------- | ------------------------- | ---- | ---------------------------------------- | | -------- | ------------------------- | ---- | ---------------------------------------- |
| context | Context | 是 | 应用运行的上下文。<br>FA模型的应用Context定义见[Context](js-apis-Context.md)<br>Stage模型的应用Context定义见[Context](js-apis-ability-context.md)。 | | context | Context | 是 | 应用运行的上下文。<br>FA模型的应用Context定义见[Context](js-apis-Context.md)<br>Stage模型的应用Context定义见[Context](js-apis-ability-context.md)。 |
| callback | AsyncCallback&lt;void&gt; | 是 | callback形式返回启动长时任务的结果。 | | callback | AsyncCallback&lt;void&gt; | 是 | callback形式返回启动长时任务的结果。 |
...@@ -434,7 +434,7 @@ stopBackgroundRunning(context: Context): Promise&lt;void&gt; ...@@ -434,7 +434,7 @@ stopBackgroundRunning(context: Context): Promise&lt;void&gt;
**参数** **参数**
| 参数名 | 类型 | 必填 | 说明 | | 名称 | 类型 | 必填 | 说明 |
| ------- | ------- | ---- | ---------------------------------------- | | ------- | ------- | ---- | ---------------------------------------- |
| context | Context | 是 | 应用运行的上下文。<br>FA模型的应用Context定义见[Context](js-apis-Context.md)<br>Stage模型的应用Context定义见[Context](js-apis-ability-context.md)。 | | context | Context | 是 | 应用运行的上下文。<br>FA模型的应用Context定义见[Context](js-apis-Context.md)<br>Stage模型的应用Context定义见[Context](js-apis-ability-context.md)。 |
...@@ -492,7 +492,7 @@ applyEfficiencyResources(request: [EfficiencyResourcesRequest](#efficiencyresour ...@@ -492,7 +492,7 @@ applyEfficiencyResources(request: [EfficiencyResourcesRequest](#efficiencyresour
**参数** **参数**
| 参数名 | 类型 | 必填 | 说明 | | 名称 | 类型 | 必填 | 说明 |
| ------- | ------- | ---- | ---------------------------------------- | | ------- | ------- | ---- | ---------------------------------------- |
| request | [EfficiencyResourcesRequest](#efficiencyresourcesrequest) | 是 | 请求的必要信息。包括资源类型,超时时间等信息。详见[EfficiencyResourcesRequest](#efficiencyresourcesrequest)。 | | request | [EfficiencyResourcesRequest](#efficiencyresourcesrequest) | 是 | 请求的必要信息。包括资源类型,超时时间等信息。详见[EfficiencyResourcesRequest](#efficiencyresourcesrequest)。 |
...@@ -570,7 +570,7 @@ try { ...@@ -570,7 +570,7 @@ try {
**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.TransientTask **系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.TransientTask
| 参数名 | 类型 | 必填 | 说明 | | 名称 | 类型 | 必填 | 说明 |
| --------------- | ------ | ---- | ---------------------------------------- | | --------------- | ------ | ---- | ---------------------------------------- |
| requestId | number | 是 | 延迟挂起的请求ID。 | | requestId | number | 是 | 延迟挂起的请求ID。 |
| actualDelayTime | number | 是 | 应用的实际挂起延迟时间,以毫秒为单位。<br/>一般情况下默认值为180000,低电量(依据系统低电量广播)时默认值为60000。 | | actualDelayTime | number | 是 | 应用的实际挂起延迟时间,以毫秒为单位。<br/>一般情况下默认值为180000,低电量(依据系统低电量广播)时默认值为60000。 |
...@@ -580,7 +580,7 @@ try { ...@@ -580,7 +580,7 @@ try {
**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.ContinuousTask **系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.ContinuousTask
| 参数名 | 参数值 | 描述 | | 名称 | 值 | 描述 |
| ----------------------- | ---- | --------------------- | | ----------------------- | ---- | --------------------- |
| DATA_TRANSFER | 1 | 数据传输。 | | DATA_TRANSFER | 1 | 数据传输。 |
| AUDIO_PLAYBACK | 2 | 音频播放。 | | AUDIO_PLAYBACK | 2 | 音频播放。 |
...@@ -600,7 +600,7 @@ try { ...@@ -600,7 +600,7 @@ try {
**系统API**: 此接口为系统接口。 **系统API**: 此接口为系统接口。
| 参数名 | 类型 | 必填 | 说明 | | 名称 | 类型 | 必填 | 说明 |
| --------------- | ------ | ---- | ---------------------------------------- | | --------------- | ------ | ---- | ---------------------------------------- |
| resourceTypes | number | 是 | 申请的资源类型。 | | resourceTypes | number | 是 | 申请的资源类型。 |
| isApply | boolean | 是 | 申请资源或者是释放资源。 | | isApply | boolean | 是 | 申请资源或者是释放资源。 |
...@@ -617,13 +617,13 @@ try { ...@@ -617,13 +617,13 @@ try {
**系统API**: 此接口为系统接口。 **系统API**: 此接口为系统接口。
| 参数名 | 描述 | | 名称 | 值 | 描述 |
| ----------------------- | --------------------- | | ----------------------- | ---- | --------------------- |
| CPU | CPU资源,申请后不被挂起。 | | CPU | 1 | CPU资源,申请后不被挂起。 |
| COMMON_EVENT | 公共事件,申请后挂起状态下不被代理掉。 | | COMMON_EVENT | 2 | 公共事件,申请后挂起状态下不被代理掉。 |
| TIMER | 计时器,申请后挂起状态下不被代理掉。 | | TIMER | 4 | 计时器,申请后挂起状态下不被代理掉。 |
| WORK_SCHEDULER | 延迟任务,申请后有更长的执行时间。 | | WORK_SCHEDULER | 8 | 延迟任务,申请后有更长的执行时间。 |
| BLUETOOTH | 蓝牙相关,申请后挂起状态下不被代理掉。 | | BLUETOOTH | 16 | 蓝牙相关,申请后挂起状态下不被代理掉。 |
| GPS | GPS相关,申请后挂起状态下不被代理掉。 | | GPS | 32 | GPS相关,申请后挂起状态下不被代理掉。 |
| AUDIO | 音频资源,申请后挂起状态下不被代理掉。 | | AUDIO | 64 | 音频资源,申请后挂起状态下不被代理掉。 |
...@@ -26,7 +26,7 @@ startWork(work: WorkInfo): void ...@@ -26,7 +26,7 @@ startWork(work: WorkInfo): void
**参数** **参数**
| 参数名 | 类型 | 必填 | 说明 | | 名称 | 类型 | 必填 | 说明 |
| ---- | --------------------- | ---- | -------------- | | ---- | --------------------- | ---- | -------------- |
| work | [WorkInfo](#workinfo) | 是 | 指示要添加到执行队列的工作。 | | work | [WorkInfo](#workinfo) | 是 | 指示要添加到执行队列的工作。 |
...@@ -77,7 +77,7 @@ stopWork(work: WorkInfo, needCancel?: boolean): void ...@@ -77,7 +77,7 @@ stopWork(work: WorkInfo, needCancel?: boolean): void
**参数** **参数**
| 参数名 | 类型 | 必填 | 说明 | | 名称 | 类型 | 必填 | 说明 |
| ---------- | --------------------- | ---- | ---------- | | ---------- | --------------------- | ---- | ---------- |
| work | [WorkInfo](#workinfo) | 是 | 指示要停止的工作。 | | work | [WorkInfo](#workinfo) | 是 | 指示要停止的工作。 |
| needCancel | boolean | 是 | 是否需要取消的工作。 | | needCancel | boolean | 是 | 是否需要取消的工作。 |
...@@ -127,7 +127,7 @@ getWorkStatus(workId: number, callback : AsyncCallback\<WorkInfo>): void ...@@ -127,7 +127,7 @@ getWorkStatus(workId: number, callback : AsyncCallback\<WorkInfo>): void
**参数** **参数**
| 参数名 | 类型 | 必填 | 说明 | | 名称 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------- | ---- | ---------------------------------------- | | -------- | ------------------------------------- | ---- | ---------------------------------------- |
| workId | number | 是 | work的id。 | | workId | number | 是 | work的id。 |
| callback | AsyncCallback\<[WorkInfo](#workinfo)> | 是 | 指定的callback回调方法。如果指定的工作Id有效,则返回从WorkSchedulerService获取的有效工作状态;否则返回null。 | | callback | AsyncCallback\<[WorkInfo](#workinfo)> | 是 | 指定的callback回调方法。如果指定的工作Id有效,则返回从WorkSchedulerService获取的有效工作状态;否则返回null。 |
...@@ -170,7 +170,7 @@ getWorkStatus(workId: number): Promise\<WorkInfo> ...@@ -170,7 +170,7 @@ getWorkStatus(workId: number): Promise\<WorkInfo>
**参数** **参数**
| 参数名 | 类型 | 必填 | 说明 | | 名称 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | -------- | | ------ | ------ | ---- | -------- |
| workId | number | 是 | work的id。 | | workId | number | 是 | work的id。 |
...@@ -216,7 +216,7 @@ obtainAllWorks(callback : AsyncCallback\<void>): Array\<WorkInfo> ...@@ -216,7 +216,7 @@ obtainAllWorks(callback : AsyncCallback\<void>): Array\<WorkInfo>
**参数** **参数**
| 参数名 | 类型 | 必填 | 说明 | | 名称 | 类型 | 必填 | 说明 |
| -------- | -------------------- | ---- | ------------------------------- | | -------- | -------------------- | ---- | ------------------------------- |
| callback | AsyncCallback\<void> | 是 | 指定的callback回调方法。返回与应用程序关联的所有工作。 | | callback | AsyncCallback\<void> | 是 | 指定的callback回调方法。返回与应用程序关联的所有工作。 |
...@@ -326,7 +326,7 @@ isLastWorkTimeOut(workId: number, callback : AsyncCallback\<void>): boolean ...@@ -326,7 +326,7 @@ isLastWorkTimeOut(workId: number, callback : AsyncCallback\<void>): boolean
**参数** **参数**
| 参数名 | 类型 | 必填 | 说明 | | 名称 | 类型 | 必填 | 说明 |
| -------- | -------------------- | ---- | ---------------------------------------- | | -------- | -------------------- | ---- | ---------------------------------------- |
| workId | number | 是 | work的id。 | | workId | number | 是 | work的id。 |
| callback | AsyncCallback\<void> | 是 | 指定的callback回调方法。如果指定工作的最后一次执行是超时操作,则返回true;否则返回false。 | | callback | AsyncCallback\<void> | 是 | 指定的callback回调方法。如果指定工作的最后一次执行是超时操作,则返回true;否则返回false。 |
...@@ -372,7 +372,7 @@ isLastWorkTimeOut(workId: number): Promise\<boolean> ...@@ -372,7 +372,7 @@ isLastWorkTimeOut(workId: number): Promise\<boolean>
**参数** **参数**
| 参数名 | 类型 | 必填 | 说明 | | 名称 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | -------- | | ------ | ------ | ---- | -------- |
| workId | number | 是 | work的id。 | | workId | number | 是 | work的id。 |
...@@ -413,7 +413,7 @@ isLastWorkTimeOut(workId: number): Promise\<boolean> ...@@ -413,7 +413,7 @@ isLastWorkTimeOut(workId: number): Promise\<boolean>
**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler **系统能力**:SystemCapability.ResourceSchedule.WorkScheduler
| 参数名 | 类型 | 必填 | 说明 | | 名称 | 类型 | 必填 | 说明 |
| --------------- | --------------------------------- | ---- | ---------------- | | --------------- | --------------------------------- | ---- | ---------------- |
| workId | number | 是 | 当前工作的ID | | workId | number | 是 | 当前工作的ID |
| bundleName | string | 是 | 延迟任务包名 | | bundleName | string | 是 | 延迟任务包名 |
...@@ -437,45 +437,45 @@ isLastWorkTimeOut(workId: number): Promise\<boolean> ...@@ -437,45 +437,45 @@ isLastWorkTimeOut(workId: number): Promise\<boolean>
**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler **系统能力**:SystemCapability.ResourceSchedule.WorkScheduler
| 名称 | 说明 | | 名称 | 值 | 说明 |
| ---------------------- | ----------------------- | | ---------------------- | ---- | ----------------------- |
| NETWORK_TYPE_ANY | 表示这个触发条件是任何类型的网络连接。 | | NETWORK_TYPE_ANY | 0 | 表示这个触发条件是任何类型的网络连接。 |
| NETWORK_TYPE_MOBILE | 表示这个触发条件是Mobile网络连接。 | | NETWORK_TYPE_MOBILE | 1 | 表示这个触发条件是Mobile网络连接。 |
| NETWORK_TYPE_WIFI | 表示这个触发条件是Wifi类型的网络连接。 | | NETWORK_TYPE_WIFI | 2 | 表示这个触发条件是Wifi类型的网络连接。 |
| NETWORK_TYPE_BLUETOOTH | 表示这个触发条件是Bluetooth网络连接。 | | NETWORK_TYPE_BLUETOOTH | 3 | 表示这个触发条件是Bluetooth网络连接。 |
| NETWORK_TYPE_WIFI_P2P | 表示这个触发条件是Wifi P2P网络连接。 | | NETWORK_TYPE_WIFI_P2P | 4 | 表示这个触发条件是Wifi P2P网络连接。 |
| NETWORK_TYPE_ETHERNET | 表示这个触发条件是有线网络连接。 | | NETWORK_TYPE_ETHERNET | 5 | 表示这个触发条件是有线网络连接。 |
## ChargingType ## ChargingType
触发工作的充电类型。 触发工作的充电类型。
**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler **系统能力**:SystemCapability.ResourceSchedule.WorkScheduler
| 名称 | 说明 | | 名称 | 值 | 说明 |
| ------------------------- | -------------------- | | ------------------------- | ---- | -------------------- |
| CHARGING_PLUGGED_ANY | 表示这个触发条件是任何类型的充电器连接。 | | CHARGING_PLUGGED_ANY | 0 | 表示这个触发条件是任何类型的充电器连接。 |
| CHARGING_PLUGGED_AC | 表示这个触发条件是直流充电器连接。 | | CHARGING_PLUGGED_AC | 1 | 表示这个触发条件是直流充电器连接。 |
| CHARGING_PLUGGED_USB | 表示这个触发条件是USB充连接。 | | CHARGING_PLUGGED_USB | 2 | 表示这个触发条件是USB充连接。 |
| CHARGING_PLUGGED_WIRELESS | 表示这个触发条件是无线充电器连接。 | | CHARGING_PLUGGED_WIRELESS | 3 | 表示这个触发条件是无线充电器连接。 |
## BatteryStatus ## BatteryStatus
触发工作的电池状态。 触发工作的电池状态。
**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler **系统能力**:SystemCapability.ResourceSchedule.WorkScheduler
| 名称 | 说明 | | 名称 | 值 | 说明 |
| -------------------------- | -------------------------- | | -------------------------- | ---- | -------------------------- |
| BATTERY_STATUS_LOW | 表示这个触发条件是低电告警。 | | BATTERY_STATUS_LOW | 0 | 表示这个触发条件是低电告警。 |
| BATTERY_STATUS_OKAY | 表示这个触发条件是从低电恢复到正常电量。 | | BATTERY_STATUS_OKAY | 1 | 表示这个触发条件是从低电恢复到正常电量。 |
| BATTERY_STATUS_LOW_OR_OKAY | 表示这个触发条件是从低电恢复到正常电量或者低电告警。 | | BATTERY_STATUS_LOW_OR_OKAY | 2 | 表示这个触发条件是从低电恢复到正常电量或者低电告警。 |
## StorageRequest ## StorageRequest
触发工作的存储状态。 触发工作的存储状态。
**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler **系统能力**:SystemCapability.ResourceSchedule.WorkScheduler
| 名称 | 说明 | | 名称 | 值 | 说明 |
| ------------------------- | ------------------------------ | | ------------------------- | ---- | ------------------------------ |
| STORAGE_LEVEL_LOW | 表示这个触发条件是存储空间不足。 | | STORAGE_LEVEL_LOW | 0 | 表示这个触发条件是存储空间不足。 |
| STORAGE_LEVEL_OKAY | 表示这个触发条件是从存储空间不足恢复到正常。 | | STORAGE_LEVEL_OKAY | 1 | 表示这个触发条件是从存储空间不足恢复到正常。 |
| STORAGE_LEVEL_LOW_OR_OKAY | 表示这个触发条件是从存储空间不足恢复到正常或者存储空间不足。 | | STORAGE_LEVEL_LOW_OR_OKAY | 2 | 表示这个触发条件是从存储空间不足恢复到正常或者存储空间不足。 |
\ No newline at end of file \ No newline at end of file
# 设备状态感知框架
设备状态感知框架提供设备状态感知能力,包括绝对静止和相对静止。
> **说明:**
> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
## 导入模块
```js
import deviceStatus from '@ohos.devicestatus'
```
## ActivityResponse
服务响应抽象接口。
**系统能力** SystemCapability.Msdp.DeviceStatus.Stationary
### 属性
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| state | [ActivityState](#activitystate) | 是 | 否 | 设备状态变化返回值。 |
## ActivityType
设备状态类型。
**系统能力** SystemCapability.Msdp.DeviceStatus.Stationary
| 名称 | 描述 |
| -------- | -------- |
| still | 绝对静止。 |
| relativeStill | 相对静止。 |
## ActivityEvent
设备状态事件。
**系统能力** SystemCapability.Msdp.DeviceStatus.Stationary
| 变量 | 值 | 说明 |
| ------------------------------ | ---- | ---------------------------------------- |
| ENTER | 1 | 进入。 |
| EXIT | 2 | 退出。 |
| ENTER_EXIT | 3 | 进入和退出。 |
## ActivityState
设备状态返回值。
**系统能力** SystemCapability.Msdp.DeviceStatus.Stationary
| 变量 | 值 | 说明 |
| ------------------------------ | ---- | ---------------------------------------- |
| ENTER | 1 | 进入。 |
| EXIT | 2 | 退出。 |
## deviceStatus.on('still' | 'relativeStill')
on(activity: ActivityType, event: ActivityEvent, reportLatencyNs: number, callback: Callback&lt;ActivityResponse&gt;): void
设备状态管理,订阅设备状态服务。
**系统能力** SystemCapability.Msdp.DeviceStatus.Stationary
**参数:**
| 名称 | 类型 | 必填 | 说明 |
| -------------------- | -------------------------------------------------- | ---- | ---------------------------- |
| activity | [ActivityType](#activitytype) | 是 | 设备状态能力类型。 |
| event | [ActivityEvent](#activityevent) | 是 | 事件类型。 |
| reportLatencyNs | number | 是 | 报告延时。 |
| callback | Callback<[ActivityResponse](#activityresponse)\> | 是 | 回调函数,接收上报状态变化事件。 |
**示例:**
```js
var reportLatencyNs = 100;
deviceStatus.on('still', deviceStatus.ActivityEvent.ENTER, reportLatencyNs, (data) => {
console.log('data='+ JSON.stringify(data));
})
```
## deviceStatus.once('still' | 'relativeStill')
once(activity: ActivityType, callback: Callback&lt;ActivityResponse&gt;): void
设备状态管理,查询设备状态。
**系统能力** SystemCapability.Msdp.DeviceStatus.Stationary
**参数:**
| 名称 | 类型 | 必填 | 说明 |
| -------------------- | -------------------------------------------------- | ---- | ---------------------------- |
| activity | [ActivityType](#activitytype) | 是 | 设备状态能力类型。 |
| callback | Callback<[ActivityResponse](#activityresponse)\> | 是 | 回调函数,接收上报状态变化事件。 |
**示例:**
```js
deviceStatus.once('still', (data) => {
console.log("data="+ JSON.stringify(data));
})
```
## deviceStatus.off('still' | 'relativeStill')
off(activity: ActivityType, event: ActivityEvent, callback?: Callback&lt;ActivityResponse&gt;): void
设备状态管理,取消订阅设备状态服务。
**系统能力** SystemCapability.Msdp.DeviceStatus.Stationary
**参数:**
| 名称 | 类型 | 必填 | 说明 |
| -------------------- | -------------------------------------------------- | ---- | ---------------------------- |
| activity | [ActivityType](#activitytype) | 是 | 设备状态能力类型。 |
| event | [ActivityEvent](#activityevent) | 是 | 事件类型。 |
| callback | Callback<[ActivityResponse](#activityresponse)\> | 否 | 回调函数,接收上报状态变化事件。 |
**示例:**
```js
deviceStatus.off('still', deviceStatus.ActivityEvent.ENTER);
```
...@@ -453,7 +453,7 @@ setTimezone(timezone: string, callback: AsyncCallback&lt;void&gt;): void ...@@ -453,7 +453,7 @@ setTimezone(timezone: string, callback: AsyncCallback&lt;void&gt;): void
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------- | ---- | -------------------------- | | -------- | ------------- | ---- | -------------------------- |
| timezone | string | 是 | 系统时区。 | | timezone | string | 是 | 系统时区。 具体可见[支持的系统时区](#支持的系统时区) |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 | | callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |
**示例:** **示例:**
...@@ -482,7 +482,7 @@ setTimezone(timezone: string): Promise&lt;void&gt; ...@@ -482,7 +482,7 @@ setTimezone(timezone: string): Promise&lt;void&gt;
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ------ | ---- | ---------- | | -------- | ------ | ---- | ---------- |
| timezone | string | 是 | 系统时区。 | | timezone | string | 是 | 系统时区。具体可见[支持的系统时区](#支持的系统时区) |
**返回值:** **返回值:**
...@@ -512,7 +512,7 @@ getTimezone(callback: AsyncCallback&lt;string&gt;): void ...@@ -512,7 +512,7 @@ getTimezone(callback: AsyncCallback&lt;string&gt;): void
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | --------- | ---- | ------------------------ | | -------- | --------- | ---- | ------------------------ |
| callback | AsyncCallback&lt;string&gt; | 是 | 回调函数,返回系统时区。 | | callback | AsyncCallback&lt;string&gt; | 是 | 回调函数,返回系统时区。具体可见[支持的系统时区](#支持的系统时区) |
**示例:** **示例:**
...@@ -538,7 +538,7 @@ getTimezone(): Promise&lt;string&gt; ...@@ -538,7 +538,7 @@ getTimezone(): Promise&lt;string&gt;
| 类型 | 说明 | | 类型 | 说明 |
| --------------------- | ------------------------------------- | | --------------------- | ------------------------------------- |
| Promise&lt;string&gt; | Promise对象,返回系统时区。 | | Promise&lt;string&gt; | Promise对象,返回系统时区。具体可见[支持的系统时区](#支持的系统时区) |
**示例:** **示例:**
...@@ -548,4 +548,42 @@ systemTime.getTimezone().then((data) => { ...@@ -548,4 +548,42 @@ systemTime.getTimezone().then((data) => {
}).catch((error) => { }).catch((error) => {
console.error(`Failed to get system time zone. Cause:` + JSON.stringify(error)); console.error(`Failed to get system time zone. Cause:` + JSON.stringify(error));
}); });
``` ```
\ No newline at end of file
## 支持的系统时区
支持的系统时区及各时区与0时区相比的偏移量(单位:h)可见下表。
| 时区 | 偏移量 |
| ------------------------------ | --------------------- |
| Antarctica/McMurdo | 12 |
| America/Argentina/Buenos_Aires | -3 |
| Australia/Sydney | 10 |
| America/Noronha | -2 |
| America/St_Johns | -3 |
| Africa/Kinshasa | 1 |
| America/Santiago | -3 |
| Asia/Shanghai | 8 |
| Asia/Nicosia | 3 |
| Europe/Berlin | 2 |
| America/Guayaquil | -5 |
| Europe/Madrid | 2 |
| Pacific/Pohnpei | 11 |
| America/Godthab | -2 |
| Asia/Jakarta | 7 |
| Pacific/Tarawa | 12 |
| Asia/Almaty | 6 |
| Pacific/Majuro | 12 |
| Asia/Ulaanbaatar | 8 |
| America/Mexico_City | -5 |
| Asia/Kuala_Lumpur | 8 |
| Pacific/Auckland | 12 |
| Pacific/Tahiti | -10 |
| Pacific/Port_Moresby | 10 |
| Asia/Gaza | 3 |
| Europe/Lisbon | 1 |
| Europe/Moscow | 3 |
| Europe/Kiev | 3 |
| Pacific/Wake | 12 |
| America/New_York | -4 |
| Asia/Tashkent | 5 |
\ No newline at end of file
...@@ -20,7 +20,7 @@ import systemTimer from '@ohos.systemTimer'; ...@@ -20,7 +20,7 @@ import systemTimer from '@ohos.systemTimer';
| 名称 | 类型 | 值 | 说明 | | 名称 | 类型 | 值 | 说明 |
| ------------------- | ------ | ---- | ---------------------------- | | ------------------- | ------ | ---- | ---------------------------- |
| TIMER_TYPE_REALTIME | number | 1 | 系统启动时间定时器。 | | TIMER_TYPE_REALTIME | number | 1 | 系统启动时间定时器。(定时器启动时间不能晚于当前设置的系统时间) |
| TIMER_TYPE_WAKEUP | number | 2 | 唤醒定时器。 | | TIMER_TYPE_WAKEUP | number | 2 | 唤醒定时器。 |
| TIMER_TYPE_EXACT | number | 4 | 精准定时器。 | | TIMER_TYPE_EXACT | number | 4 | 精准定时器。 |
| TIMER_TYPE_IDLE | number | 8 | IDLE模式定时器(暂不支持)。 | | TIMER_TYPE_IDLE | number | 8 | IDLE模式定时器(暂不支持)。 |
...@@ -33,7 +33,7 @@ import systemTimer from '@ohos.systemTimer'; ...@@ -33,7 +33,7 @@ import systemTimer from '@ohos.systemTimer';
| 名称 | 类型 | 必填 | 说明 | | 名称 | 类型 | 必填 | 说明 |
| --------- | --------------------------------- | ---- | ------------------------------------------------------------ | | --------- | --------------------------------- | ---- | ------------------------------------------------------------ |
| type | number | 是 | 定时器类型。<br>取值为1时,表示为系统启动时间定时器;<br>取值为2时,表示为唤醒定时器;<br>取值为4时,表示为精准定时器;<br>取值为5时,表示为IDLE模式定时器(暂不支持)。 | | type | number | 是 | 定时器类型。<br>取值为1时,表示为系统启动时间定时器(定时器启动时间不能晚于当前设置的系统时间) <br>取值为2时,表示为唤醒定时器;<br>取值为4时,表示为精准定时器;<br>取值为5时,表示为IDLE模式定时器(暂不支持)。 |
| repeat | boolean | 是 | true为循环定时器,false为单次定时器。 | | repeat | boolean | 是 | true为循环定时器,false为单次定时器。 |
| interval | number | 否 | 如果是循环定时器,repeat值应大于5000毫秒,非重复定时器置为0。 | | interval | number | 否 | 如果是循环定时器,repeat值应大于5000毫秒,非重复定时器置为0。 |
| wantAgent | [WantAgent](js-apis-wantAgent.md) | 否 | 设置通知的WantAgent,定时器到期后通知。(支持拉起应用MainAbility,暂不支持拉起ServiceAbility。) | | wantAgent | [WantAgent](js-apis-wantAgent.md) | 否 | 设置通知的WantAgent,定时器到期后通知。(支持拉起应用MainAbility,暂不支持拉起ServiceAbility。) |
......
...@@ -30,18 +30,20 @@ getTagInfo(): tag.TagInfo ...@@ -30,18 +30,20 @@ getTagInfo(): tag.TagInfo
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| TagInfo | NFC服务所提供的Tag数据对象。 | | TagInfo | NFC服务所提供的Tag数据对象。 |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// see 'tag.TagInfo' at 'js-apis-nfcTag.md', tagInfo is an Object given by nfc service when tag is dispatched. // see 'tag.TagInfo' at 'js-apis-nfcTag.md', tagInfo is an Object given by nfc service when tag is dispatched.
// the folowing getXXX, can be one of getIsoDep, getNdef, getMifareClassic, ... // the folowing getXXX, can be one of getIsoDep, getNdef, getMifareClassic, ...
let tagInfo = tag.getXXX(tagInfo).getTagInfo(); let tagInfo = tag.getIsoDep(tagInfo).getTagInfo();
console.log("tag tagInfo: " + tagInfo); console.log("tag tagInfo: " + tagInfo);
``` ```
...@@ -56,18 +58,20 @@ connectTag(): boolean; ...@@ -56,18 +58,20 @@ connectTag(): boolean;
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| boolean | 连接建立成功返回true,失败返回false。 | | boolean | 连接建立成功返回true,失败返回false。 |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// see 'tag.TagInfo' at 'js-apis-nfcTag.md', tagInfo is an Object given by nfc service when tag is dispatched. // see 'tag.TagInfo' at 'js-apis-nfcTag.md', tagInfo is an Object given by nfc service when tag is dispatched.
// the folowing getXXX, can be one of getIsoDep, getNdef, getMifareClassic, ... // the folowing getXXX, can be one of getIsoDep, getNdef, getMifareClassic, ...
let connectStatus = tag.getXXX(tagInfo).connectTag(); let connectStatus = tag.getIsoDep(tagInfo).connectTag();
console.log("connectStatus: " + connectStatus); console.log("connectStatus: " + connectStatus);
``` ```
...@@ -82,13 +86,14 @@ reset(): void ...@@ -82,13 +86,14 @@ reset(): void
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// see 'tag.TagInfo' at 'js-apis-nfcTag.md', tagInfo is an Object given by nfc service when tag is dispatched. // see 'tag.TagInfo' at 'js-apis-nfcTag.md', tagInfo is an Object given by nfc service when tag is dispatched.
// the folowing getXXX, can be one of getIsoDep, getNdef, getMifareClassic, ... // the folowing getXXX, can be one of getIsoDep, getNdef, getMifareClassic, ...
tag.getXXX(tagInfo).reset(); tag.getIsoDep(tagInfo).reset();
``` ```
### tagSession.isTagConnected ### tagSession.isTagConnected
...@@ -102,18 +107,20 @@ isTagConnected(): boolean ...@@ -102,18 +107,20 @@ isTagConnected(): boolean
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| boolean | 已建立连接返回 true,未建立连接返回false。 | | boolean | 已建立连接返回 true,未建立连接返回false。 |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// see 'tag.TagInfo' at 'js-apis-nfcTag.md', tagInfo is an Object given by nfc service when tag is dispatched. // see 'tag.TagInfo' at 'js-apis-nfcTag.md', tagInfo is an Object given by nfc service when tag is dispatched.
// the folowing getXXX, can be one of getIsoDep, getNdef, getMifareClassic, ... // the folowing getXXX, can be one of getIsoDep, getNdef, getMifareClassic, ...
let isTagConnected = tag.getXXX(tagInfo).isTagConnected(); let isTagConnected = tag.getIsoDep(tagInfo).isTagConnected();
console.log("isTagConnected: " + isTagConnected); console.log("isTagConnected: " + isTagConnected);
``` ```
...@@ -128,6 +135,7 @@ getMaxSendLength(): number ...@@ -128,6 +135,7 @@ getMaxSendLength(): number
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| number | 可以发送到标签的最大数据长度,非负数。 | | number | 可以发送到标签的最大数据长度,非负数。 |
...@@ -139,7 +147,7 @@ import tag from '@ohos.nfc.tag'; ...@@ -139,7 +147,7 @@ import tag from '@ohos.nfc.tag';
// see 'tag.TagInfo' at 'js-apis-nfcTag.md', tagInfo is an Object given by nfc service when tag is dispatched. // see 'tag.TagInfo' at 'js-apis-nfcTag.md', tagInfo is an Object given by nfc service when tag is dispatched.
// the folowing getXXX, can be one of getIsoDep, getNdef, getMifareClassic, ... // the folowing getXXX, can be one of getIsoDep, getNdef, getMifareClassic, ...
let maxSendLen = tag.getXXX(tagInfo).getMaxSendLength(); let maxSendLen = tag.getIsoDep(tagInfo).getMaxSendLength();
console.log("tag maxSendLen: " + maxSendLen); console.log("tag maxSendLen: " + maxSendLen);
``` ```
...@@ -154,18 +162,20 @@ getSendDataTimeout(): number ...@@ -154,18 +162,20 @@ getSendDataTimeout(): number
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| number | 发送数据到Tag的等待超时时间,单位是毫秒,非负数。 | | number | 发送数据到Tag的等待超时时间,单位是毫秒,非负数。 |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// see 'tag.TagInfo' at 'js-apis-nfcTag.md', tagInfo is an Object given by nfc service when tag is dispatched. // see 'tag.TagInfo' at 'js-apis-nfcTag.md', tagInfo is an Object given by nfc service when tag is dispatched.
// the folowing getXXX, can be one of getIsoDep, getNdef, getMifareClassic, ... // the folowing getXXX, can be one of getIsoDep, getNdef, getMifareClassic, ...
let sendDataTimeout = tag.getXXX(tagInfo).getSendDataTimeout(); let sendDataTimeout = tag.getIsoDep(tagInfo).getSendDataTimeout();
console.log("tag sendDataTimeout: " + sendDataTimeout); console.log("tag sendDataTimeout: " + sendDataTimeout);
``` ```
...@@ -180,11 +190,13 @@ setSendDataTimeout(timeout: number): boolean ...@@ -180,11 +190,13 @@ setSendDataTimeout(timeout: number): boolean
**系统能力**:SystemCapability.Communication.NFC.Core **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| timeout | number | 是 | 超时时间,单位毫秒,非负值。 | | timeout | number | 是 | 超时时间,单位毫秒,非负值。 |
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| boolean | 设置超时时间成功返回true,设置失败返回false。 | | boolean | 设置超时时间成功返回true,设置失败返回false。 |
...@@ -198,7 +210,7 @@ import tag from '@ohos.nfc.tag'; ...@@ -198,7 +210,7 @@ import tag from '@ohos.nfc.tag';
// the folowing getXXX, can be one of getIsoDep, getNdef, getMifareClassic, ... // the folowing getXXX, can be one of getIsoDep, getNdef, getMifareClassic, ...
let timeoutMs = 700; // change it to be correct. let timeoutMs = 700; // change it to be correct.
let setStatus = tag.getXXX(tagInfo).setSendDataTimeout(timeoutMs); let setStatus = tag.getIsoDep(tagInfo).setSendDataTimeout(timeoutMs);
console.log("tag setSendDataTimeout setStatus: " + setStatus); console.log("tag setSendDataTimeout setStatus: " + setStatus);
``` ```
...@@ -210,19 +222,22 @@ sendData(data: number[]): Promise<number[]> ...@@ -210,19 +222,22 @@ sendData(data: number[]): Promise<number[]>
**需要权限**:ohos.permission.NFC_TAG **需要权限**:ohos.permission.NFC_TAG
**系统能力**:SystemCapability.Communication.NFC **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| data | number[] | 是 | 要发送的指令。每个number十六进制表示,范围是0x00~0xFF。 | | data | number[] | 是 | 要发送的指令。每个number十六进制表示,范围是0x00~0xFF。 |
**返回值:** **返回值:**
| **类型** | **说明** | | **类型** | **说明** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| Promise<number[]> | 对端Tag对指令的响应数据。每个number十六进制表示,范围是0x00~0xFF。| | Promise<number[]> | 对端Tag对指令的响应数据。每个number十六进制表示,范围是0x00~0xFF。|
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -230,15 +245,15 @@ import tag from '@ohos.nfc.tag'; ...@@ -230,15 +245,15 @@ import tag from '@ohos.nfc.tag';
// the folowing getXXX, can be one of getIsoDep, getNdef, getMifareClassic, ... // the folowing getXXX, can be one of getIsoDep, getNdef, getMifareClassic, ...
// connect the tag at first if not connected. // connect the tag at first if not connected.
if (!tag.getXXX(tagInfo).isTagConnected()) { if (!tag.getIsoDep(tagInfo).isTagConnected()) {
if (!tag.getXXX(tagInfo).connectTag()) { if (!tag.getIsoDep(tagInfo).connectTag()) {
console.log("tagSession connectTag failed."); console.log("tagSession connectTag failed.");
return; return;
} }
} }
let cmdData = [0x01, 0x02, ...]; // change the raw data to be correct. let cmdData = [0x01, 0x02, 0x03, 0x04]; // change the raw data to be correct.
tag.getXXX(tagInfo).sendData(cmdData).then((response) => { tag.getIsoDep(tagInfo).sendData(cmdData).then((response) => {
console.log("tagSession sendData Promise response: " + response); console.log("tagSession sendData Promise response: " + response);
}).catch((err)=> { }).catch((err)=> {
console.log("tagSession sendData Promise err: " + err); console.log("tagSession sendData Promise err: " + err);
...@@ -253,15 +268,17 @@ sendData(data: number[], callback: AsyncCallback<number[]>): void ...@@ -253,15 +268,17 @@ sendData(data: number[], callback: AsyncCallback<number[]>): void
**需要权限**:ohos.permission.NFC_TAG **需要权限**:ohos.permission.NFC_TAG
**系统能力**:SystemCapability.Communication.NFC **系统能力**:SystemCapability.Communication.NFC.Core
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| data | number[] | 是 | 要发送的指令。每个number十六进制表示,范围是0x00~0xFF。 | | data | number[] | 是 | 要发送的指令。每个number十六进制表示,范围是0x00~0xFF。 |
| callback | AsyncCallback<number[]> | 是 | 回调函数,返回响应数据。每个number十六进制表示,范围是0x00~0xFF。 | | callback | AsyncCallback<number[]> | 是 | 回调函数,返回响应数据。每个number十六进制表示,范围是0x00~0xFF。 |
**示例:** **示例:**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
...@@ -269,15 +286,15 @@ import tag from '@ohos.nfc.tag'; ...@@ -269,15 +286,15 @@ import tag from '@ohos.nfc.tag';
// the folowing getXXX, can be one of getIsoDep, getNdef, getMifareClassic, ... // the folowing getXXX, can be one of getIsoDep, getNdef, getMifareClassic, ...
// connect the tag at first if not connected. // connect the tag at first if not connected.
if (!tag.getXXX(tagInfo).isTagConnected()) { if (!tag.getIsoDep(tagInfo).isTagConnected()) {
if (!tag.getXXX(tagInfo).connectTag()) { if (!tag.getIsoDep(tagInfo).connectTag()) {
console.log("tagSession connectTag failed."); console.log("tagSession connectTag failed.");
return; return;
} }
} }
let cmdData = [0x01, 0x02, ...]; // change the raw data to be correct. let cmdData = [0x01, 0x02, 0x03, 0x04]; // change the raw data to be correct.
tag.getXXX(tagInfo).sendData(cmdData, (err, response)=> { tag.getIsoDep(tagInfo).sendData(cmdData, (err, response)=> {
if (err) { if (err) {
console.log("tagSession sendData AsyncCallback err: " + err); console.log("tagSession sendData AsyncCallback err: " + err);
} else { } else {
......
...@@ -1309,7 +1309,7 @@ getThumbnail(size: image.Size, callback: AsyncCallback&lt;image.PixelMap&gt;): v ...@@ -1309,7 +1309,7 @@ getThumbnail(size: image.Size, callback: AsyncCallback&lt;image.PixelMap&gt;): v
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------------------- | ---- | ---------------- | | -------- | ----------------------------------- | ---- | ---------------- |
| size | Size | 是 | 缩略图尺寸 | | size | [image.Size](js-apis-image.md#size) | 是 | 缩略图尺寸 |
| callback | AsyncCallback&lt;[image.PixelMap](js-apis-image.md#pixelmap7)&gt; | 是 | 回调返回缩略图的PixelMap | | callback | AsyncCallback&lt;[image.PixelMap](js-apis-image.md#pixelmap7)&gt; | 是 | 回调返回缩略图的PixelMap |
**示例:** **示例:**
...@@ -1352,7 +1352,7 @@ getThumbnail(size?: image.Size): Promise&lt;image.PixelMap&gt; ...@@ -1352,7 +1352,7 @@ getThumbnail(size?: image.Size): Promise&lt;image.PixelMap&gt;
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| ---- | -------------- | ---- | ----- | | ---- | -------------- | ---- | ----- |
| size | Size | 否 | 缩略图尺寸 | | size | [image.Size](js-apis-image.md#size) | 否 | 缩略图尺寸 |
**返回值:** **返回值:**
......
# WantAgent模块 # WantAgent模块
WantAgent模块提供了触发、取消、比较WantAgent实例和获取bundle名称的能力,包括创建WantAgent实例、获取实例的用户ID、获取want信息等。 WantAgent模块提供了触发、取消、比较WantAgent实例和获取bundle参数名的能力,包括创建WantAgent实例、获取实例的用户ID、获取want信息等。
> **说明:** > **说明:**
> >
...@@ -22,7 +22,7 @@ getWantAgent(info: WantAgentInfo, callback: AsyncCallback\<WantAgent\>): void ...@@ -22,7 +22,7 @@ getWantAgent(info: WantAgentInfo, callback: AsyncCallback\<WantAgent\>): void
**参数:** **参数:**
| 名称 | 可读 | 可写 | 类型 | 必填 | 描述 | | 参数名 | 可读 | 可写 | 类型 | 必填 | 说明 |
| -------- | --- | ---- | -------------------------- | ---- | ----------------------- | | -------- | --- | ---- | -------------------------- | ---- | ----------------------- |
| info | 是 | 否 | WantAgentInfo | 是 | WantAgent信息。 | | info | 是 | 否 | WantAgentInfo | 是 | WantAgent信息。 |
| callback | 是 | 否 | AsyncCallback\<WantAgent\> | 是 | 创建WantAgent的回调方法。 | | callback | 是 | 否 | AsyncCallback\<WantAgent\> | 是 | 创建WantAgent的回调方法。 |
...@@ -79,7 +79,7 @@ getWantAgent(info: WantAgentInfo): Promise\<WantAgent\> ...@@ -79,7 +79,7 @@ getWantAgent(info: WantAgentInfo): Promise\<WantAgent\>
**参数:** **参数:**
| 名称 | 可读 | 可写 | 类型 | 必填 | 描述 | | 参数名 | 可读 | 可写 | 类型 | 必填 | 说明 |
| ---- | --- | ---- | ------------- | ---- | ------------- | | ---- | --- | ---- | ------------- | ---- | ------------- |
| info | 是 | 否 | WantAgentInfo | 是 | WantAgent信息。 | | info | 是 | 否 | WantAgentInfo | 是 | WantAgent信息。 |
...@@ -140,7 +140,7 @@ getBundleName(agent: WantAgent, callback: AsyncCallback\<string\>): void ...@@ -140,7 +140,7 @@ getBundleName(agent: WantAgent, callback: AsyncCallback\<string\>): void
**参数:** **参数:**
| 名称 | 可读 | 可写 | 类型 | 必填 | 描述 | | 参数名 | 可读 | 可写 | 类型 | 必填 | 说明 |
| -------- | --- | ---- | ----------------------- | ---- | --------------------------------- | | -------- | --- | ---- | ----------------------- | ---- | --------------------------------- |
| agent | 是 | 否 | WantAgent | 是 | WantAgent对象。 | | agent | 是 | 否 | WantAgent | 是 | WantAgent对象。 |
| callback | 是 | 否 | AsyncCallback\<string\> | 是 | 获取WantAgent实例的包名的回调方法。 | | callback | 是 | 否 | AsyncCallback\<string\> | 是 | 获取WantAgent实例的包名的回调方法。 |
...@@ -212,7 +212,7 @@ getBundleName(agent: WantAgent): Promise\<string\> ...@@ -212,7 +212,7 @@ getBundleName(agent: WantAgent): Promise\<string\>
**参数:** **参数:**
| 名称 | 可读 | 可写 | 类型 | 必填 | 描述 | | 参数名 | 可读 | 可写 | 类型 | 必填 | 说明 |
| ----- | --- | ---- | --------- | ---- | ------------- | | ----- | --- | ---- | --------- | ---- | ------------- |
| agent | 是 | 否 | WantAgent | 是 | WantAgent对象。 | | agent | 是 | 否 | WantAgent | 是 | WantAgent对象。 |
...@@ -281,7 +281,7 @@ getUid(agent: WantAgent, callback: AsyncCallback\<number\>): void ...@@ -281,7 +281,7 @@ getUid(agent: WantAgent, callback: AsyncCallback\<number\>): void
**参数:** **参数:**
| 名称 | 可读 | 可写 | 类型 | 必填 | 描述 | | 参数名 | 可读 | 可写 | 类型 | 必填 | 说明 |
| -------- | --- | ---- | ----------------------- | ---- | ----------------------------------- | | -------- | --- | ---- | ----------------------- | ---- | ----------------------------------- |
| agent | 是 | 否 | WantAgent | 是 | WantAgent对象。 | | agent | 是 | 否 | WantAgent | 是 | WantAgent对象。 |
| callback | 是 | 否 | AsyncCallback\<number\> | 是 | 获取WantAgent实例的用户ID的回调方法。 | | callback | 是 | 否 | AsyncCallback\<number\> | 是 | 获取WantAgent实例的用户ID的回调方法。 |
...@@ -353,7 +353,7 @@ getUid(agent: WantAgent): Promise\<number\> ...@@ -353,7 +353,7 @@ getUid(agent: WantAgent): Promise\<number\>
**参数:** **参数:**
| 名称 | 可读 | 可写 | 类型 | 必填 | 描述 | | 参数名 | 可读 | 可写 | 类型 | 必填 | 说明 |
| ----- | --- | ---- | --------- | ---- | ------------- | | ----- | --- | ---- | --------- | ---- | ------------- |
| agent | 是 | 否 | WantAgent | 是 | WantAgent对象。 | | agent | 是 | 否 | WantAgent | 是 | WantAgent对象。 |
...@@ -424,7 +424,7 @@ getWant(agent: WantAgent, callback: AsyncCallback\<Want\>): void ...@@ -424,7 +424,7 @@ getWant(agent: WantAgent, callback: AsyncCallback\<Want\>): void
**参数:** **参数:**
| 名称 | 可读 | 可写 | 类型 | 必填 | 描述 | | 参数名 | 可读 | 可写 | 类型 | 必填 | 说明 |
| -------- | --- | ---- | --------------------- | ---- | ------------------------------- | | -------- | --- | ---- | --------------------- | ---- | ------------------------------- |
| agent | 是 | 否 | WantAgent | 是 | WantAgent对象。 | | agent | 是 | 否 | WantAgent | 是 | WantAgent对象。 |
| callback | 是 | 否 | AsyncCallback\<Want\> | 是 | 获取WantAgent对象want的回调方法。 | | callback | 是 | 否 | AsyncCallback\<Want\> | 是 | 获取WantAgent对象want的回调方法。 |
...@@ -498,7 +498,7 @@ getWant(agent: WantAgent): Promise\<Want\> ...@@ -498,7 +498,7 @@ getWant(agent: WantAgent): Promise\<Want\>
**参数:** **参数:**
| 名称 | 可读 | 可写 | 类型 | 必填 | 描述 | | 参数名 | 可读 | 可写 | 类型 | 必填 | 说明 |
| ----- | --- | ---- | --------- | ---- | ------------- | | ----- | --- | ---- | --------- | ---- | ------------- |
| agent | 是 | 否 | WantAgent | 是 | WantAgent对象。 | | agent | 是 | 否 | WantAgent | 是 | WantAgent对象。 |
...@@ -567,7 +567,7 @@ cancel(agent: WantAgent, callback: AsyncCallback\<void\>): void ...@@ -567,7 +567,7 @@ cancel(agent: WantAgent, callback: AsyncCallback\<void\>): void
**参数:** **参数:**
| 名称 | 可读 | 可写 | 类型 | 必填 | 描述 | | 参数名 | 可读 | 可写 | 类型 | 必填 | 说明 |
| -------- | --- | ---- | --------------------- | ---- | --------------------------- | | -------- | --- | ---- | --------------------- | ---- | --------------------------- |
| agent | 是 | 否 | WantAgent | 是 | WantAgent对象。 | | agent | 是 | 否 | WantAgent | 是 | WantAgent对象。 |
| callback | 是 | 否 | AsyncCallback\<void\> | 是 | 取消WantAgent实例的回调方法。 | | callback | 是 | 否 | AsyncCallback\<void\> | 是 | 取消WantAgent实例的回调方法。 |
...@@ -639,7 +639,7 @@ cancel(agent: WantAgent): Promise\<void\> ...@@ -639,7 +639,7 @@ cancel(agent: WantAgent): Promise\<void\>
**参数:** **参数:**
| 名称 | 可读 | 可写 | 类型 | 必填 | 描述 | | 参数名 | 可读 | 可写 | 类型 | 必填 | 说明 |
| ----- | --- | ---- | --------- | ---- | ------------- | | ----- | --- | ---- | --------- | ---- | ------------- |
| agent | 是 | 否 | WantAgent | 是 | WantAgent对象。 | | agent | 是 | 否 | WantAgent | 是 | WantAgent对象。 |
...@@ -708,7 +708,7 @@ trigger(agent: WantAgent, triggerInfo: TriggerInfo, callback?: Callback\<Complet ...@@ -708,7 +708,7 @@ trigger(agent: WantAgent, triggerInfo: TriggerInfo, callback?: Callback\<Complet
**参数:** **参数:**
| 名称 | 可读 | 可写 | 类型 | 必填 | 描述 | | 参数名 | 可读 | 可写 | 类型 | 必填 | 说明 |
| ----------- | --- | ---- | ----------------------------- | ---- | ------------------------------- | | ----------- | --- | ---- | ----------------------------- | ---- | ------------------------------- |
| agent | 是 | 否 | WantAgent | 是 | WantAgent对象。 | | agent | 是 | 否 | WantAgent | 是 | WantAgent对象。 |
| triggerInfo | 是 | 否 | TriggerInfo | 是 | TriggerInfo对象。 | | triggerInfo | 是 | 否 | TriggerInfo | 是 | TriggerInfo对象。 |
...@@ -785,7 +785,7 @@ equal(agent: WantAgent, otherAgent: WantAgent, callback: AsyncCallback\<boolean\ ...@@ -785,7 +785,7 @@ equal(agent: WantAgent, otherAgent: WantAgent, callback: AsyncCallback\<boolean\
**参数:** **参数:**
| 名称 | 可读 | 可写 | 类型 | 必填 | 描述 | | 参数名 | 可读 | 可写 | 类型 | 必填 | 说明 |
| ---------- | --- | ---- | ------------------------ | ---- | --------------------------------------- | | ---------- | --- | ---- | ------------------------ | ---- | --------------------------------------- |
| agent | 是 | 否 | WantAgent | 是 | WantAgent对象。 | | agent | 是 | 否 | WantAgent | 是 | WantAgent对象。 |
| otherAgent | 是 | 否 | WantAgent | 是 | WantAgent对象。 | | otherAgent | 是 | 否 | WantAgent | 是 | WantAgent对象。 |
...@@ -860,7 +860,7 @@ equal(agent: WantAgent, otherAgent: WantAgent): Promise\<boolean\> ...@@ -860,7 +860,7 @@ equal(agent: WantAgent, otherAgent: WantAgent): Promise\<boolean\>
**参数:** **参数:**
| 名称 | 可读 | 可写 | 类型 | 必填 | 描述 | | 参数名 | 可读 | 可写 | 类型 | 必填 | 说明 |
| ---------- | --- | ---- | --------- | ---- | ------------- | | ---------- | --- | ---- | --------- | ---- | ------------- |
| agent | 是 | 否 | WantAgent | 是 | WantAgent对象。 | | agent | 是 | 否 | WantAgent | 是 | WantAgent对象。 |
| otherAgent | 是 | 否 | WantAgent | 是 | WantAgent对象。 | | otherAgent | 是 | 否 | WantAgent | 是 | WantAgent对象。 |
...@@ -930,7 +930,7 @@ getOperationType(agent: WantAgent, callback: AsyncCallback\<number>): void; ...@@ -930,7 +930,7 @@ getOperationType(agent: WantAgent, callback: AsyncCallback\<number>): void;
**参数:** **参数:**
| 名称 | 可读 | 可写 | 类型 | 必填 | 描述 | | 参数名 | 可读 | 可写 | 类型 | 必填 | 说明 |
| ---------- | --- | ---- | ------------------------ | ---- | --------------------------------------- | | ---------- | --- | ---- | ------------------------ | ---- | --------------------------------------- |
| agent | 是 | 否 | WantAgent | 是 | WantAgent对象。 | | agent | 是 | 否 | WantAgent | 是 | WantAgent对象。 |
| callback | 是 | 否 | AsyncCallback\<number> | 是 | 获取一个WantAgent的OperationType信息的回调方法。 | | callback | 是 | 否 | AsyncCallback\<number> | 是 | 获取一个WantAgent的OperationType信息的回调方法。 |
...@@ -991,7 +991,7 @@ getOperationType(agent: WantAgent): Promise\<number>; ...@@ -991,7 +991,7 @@ getOperationType(agent: WantAgent): Promise\<number>;
**参数:** **参数:**
| 名称 | 可读 | 可写 | 类型 | 必填 | 描述 | | 参数名 | 可读 | 可写 | 类型 | 必填 | 说明 |
| ---------- | --- | ---- | --------- | ---- | ------------- | | ---------- | --- | ---- | --------- | ---- | ------------- |
| agent | 是 | 否 | WantAgent | 是 | WantAgent对象。 | | agent | 是 | 否 | WantAgent | 是 | WantAgent对象。 |
...@@ -1049,13 +1049,11 @@ WantAgent.getOperationType(wantAgent).then((OperationType) => { ...@@ -1049,13 +1049,11 @@ WantAgent.getOperationType(wantAgent).then((OperationType) => {
}) })
``` ```
## WantAgentInfo ## WantAgentInfo
**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core **系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core
| 名称 | 可读 | 可写 | 类型 | 必填 | 描述 | | 名称 | 可读 | 可写 | 类型 | 必填 | 说明 |
| -------------- | --- | ---- | ------------------------------- | ---- | ---------------------- | | -------------- | --- | ---- | ------------------------------- | ---- | ---------------------- |
| wants | 是 | 是 | Array\<Want\> | 是 | 将被执行的动作列表。 | | wants | 是 | 是 | Array\<Want\> | 是 | 将被执行的动作列表。 |
| operationType | 是 | 是 | wantAgent.OperationType | 是 | 动作类型。 | | operationType | 是 | 是 | wantAgent.OperationType | 是 | 动作类型。 |
...@@ -1063,26 +1061,22 @@ WantAgent.getOperationType(wantAgent).then((OperationType) => { ...@@ -1063,26 +1061,22 @@ WantAgent.getOperationType(wantAgent).then((OperationType) => {
| wantAgentFlags | 是 | 是 | Array<wantAgent.WantAgentFlags> | 否 | 动作执行属性。 | | wantAgentFlags | 是 | 是 | Array<wantAgent.WantAgentFlags> | 否 | 动作执行属性。 |
| extraInfo | 是 | 是 | {[key: string]: any} | 否 | 额外数据。 | | extraInfo | 是 | 是 | {[key: string]: any} | 否 | 额外数据。 |
## WantAgentFlags ## WantAgentFlags
**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core **系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core
| 名称 | 值 | 说明 | | 名称 | 值 | 说明 |
| ------------------- | -------------- | ------------------------------------------------------------ | | ------------------- | -------------- | ------------------------------------------------------------ |
| ONE_TIME_FLAG | WantAgentFlags | WantAgent仅能使用一次。 | | ONE_TIME_FLAG | 0 | WantAgent仅能使用一次。 |
| NO_BUILD_FLAG | WantAgentFlags | 如果描述WantAgent对象不存在,则不创建它,直接返回null。 | | NO_BUILD_FLAG | 1 | 如果说明WantAgent对象不存在,则不创建它,直接返回null。 |
| CANCEL_PRESENT_FLAG | WantAgentFlags | 在生成一个新的WantAgent对象前取消已存在的一个WantAgent对象。 | | CANCEL_PRESENT_FLAG | 2 | 在生成一个新的WantAgent对象前取消已存在的一个WantAgent对象。 |
| UPDATE_PRESENT_FLAG | WantAgentFlags | 使用新的WantAgent的额外数据替换已存在的WantAgent中的额外数据。 | | UPDATE_PRESENT_FLAG | 3 | 使用新的WantAgent的额外数据替换已存在的WantAgent中的额外数据。 |
| CONSTANT_FLAG | WantAgentFlags | WantAgent是不可变的。 | | CONSTANT_FLAG | 4 | WantAgent是不可变的。 |
| REPLACE_ELEMENT | WantAgentFlags | 当前Want中的element属性可被WantAgent.trigger()中Want的element属性取代 | | REPLACE_ELEMENT | 5 | 当前Want中的element属性可被WantAgent.trigger()中Want的element属性取代 |
| REPLACE_ACTION | WantAgentFlags | 当前Want中的action属性可被WantAgent.trigger()中Want的action属性取代 | | REPLACE_ACTION | 6 | 当前Want中的action属性可被WantAgent.trigger()中Want的action属性取代 |
| REPLACE_URI | WantAgentFlags | 当前Want中的uri属性可被WantAgent.trigger()中Want的uri属性取代 | | REPLACE_URI | 7 | 当前Want中的uri属性可被WantAgent.trigger()中Want的uri属性取代 |
| REPLACE_ENTITIES | WantAgentFlags | 当前Want中的entities属性可被WantAgent.trigger()中Want的entities属性取代 | | REPLACE_ENTITIES | 8 | 当前Want中的entities属性可被WantAgent.trigger()中Want的entities属性取代 |
| REPLACE_BUNDLE | WantAgentFlags | 当前Want中的bundleName属性可被WantAgent.trigger()中Want的bundleName属性取代 | | REPLACE_BUNDLE | 9 | 当前Want中的bundleName属性可被WantAgent.trigger()中Want的bundleName属性取代 |
## OperationType ## OperationType
...@@ -1090,19 +1084,17 @@ WantAgent.getOperationType(wantAgent).then((OperationType) => { ...@@ -1090,19 +1084,17 @@ WantAgent.getOperationType(wantAgent).then((OperationType) => {
| 名称 | 值 | 说明 | | 名称 | 值 | 说明 |
| ----------------- | ------------- | ------------------------- | | ----------------- | ------------- | ------------------------- |
| UNKNOWN_TYPE | OperationType | 不识别的类型。 | | UNKNOWN_TYPE | 0 | 不识别的类型。 |
| START_ABILITY | OperationType | 开启一个有页面的Ability。 | | START_ABILITY | 1 | 开启一个有页面的Ability。 |
| START_ABILITIES | OperationType | 开启多个有页面的Ability。 | | START_ABILITIES | 2 | 开启多个有页面的Ability。 |
| START_SERVICE | OperationType | 开启一个无页面的ability。 | | START_SERVICE | 3 | 开启一个无页面的ability。 |
| SEND_COMMON_EVENT | OperationType | 发送一个公共事件。 | | SEND_COMMON_EVENT | 4 | 发送一个公共事件。 |
## CompleteData ## CompleteData
**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core **系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core
| 名称 | 可读 | 可写 | 类型 | 必填 | 描述 | | 名称 | 可读 | 可写 | 类型 | 必填 | 说明 |
| -------------- | --- | ---- | ------------------------------ | ---- | ---------------------- | | -------------- | --- | ---- | ------------------------------ | ---- | ---------------------- |
| info | 是 | 是 | WantAgent | 是 | 触发的wantAgent。 | | info | 是 | 是 | WantAgent | 是 | 触发的wantAgent。 |
| want | 是 | 是 | Want | 是 | 存在的被触发的want。 | | want | 是 | 是 | Want | 是 | 存在的被触发的want。 |
...@@ -1110,13 +1102,11 @@ WantAgent.getOperationType(wantAgent).then((OperationType) => { ...@@ -1110,13 +1102,11 @@ WantAgent.getOperationType(wantAgent).then((OperationType) => {
| finalData | 是 | 是 | string | 否 | 公共事件收集的最终数据。 | | finalData | 是 | 是 | string | 否 | 公共事件收集的最终数据。 |
| extraInfo | 是 | 是 | {[key: string]: any} | 否 | 额外数据。 | | extraInfo | 是 | 是 | {[key: string]: any} | 否 | 额外数据。 |
## TriggerInfo ## TriggerInfo
**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core **系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core
| 名称 | 可读 | 可写 | 类型 | 必填 | 描述 | | 名称 | 可读 | 可写 | 类型 | 必填 | 说明 |
| ---------- | --- | ---- | -------------------- | ---- | ----------- | | ---------- | --- | ---- | -------------------- | ---- | ----------- |
| code | 是 | 是 | number | 是 | result code。 | | code | 是 | 是 | number | 是 | result code。 |
| want | 是 | 是 | Want | 否 | Want。 | | want | 是 | 是 | Want | 否 | Want。 |
......
...@@ -72,7 +72,7 @@ postMessageEvent(message: string): void ...@@ -72,7 +72,7 @@ postMessageEvent(message: string): void
| ------- | ------ | ---- | :------------- | | ------- | ------ | ---- | :------------- |
| message | string | 是 | 要发送的消息。 | | message | string | 是 | 要发送的消息。 |
**错误码** **错误码:**
以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md) 以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md)
...@@ -122,9 +122,9 @@ onMessageEvent(callback: (result: string) => void): void ...@@ -122,9 +122,9 @@ onMessageEvent(callback: (result: string) => void): void
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | ---- | :------------------- | | -------- | -------- | ---- | :------------------- |
| callback | function | 是 | 接收消息的回调函数。 | | result | string | 是 | 接收到的消息。 |
**错误码** **错误码:**
以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md) 以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md)
...@@ -198,10 +198,10 @@ loadUrl(url: string | Resource, headers?: Array\<HeaderV9>): void ...@@ -198,10 +198,10 @@ loadUrl(url: string | Resource, headers?: Array\<HeaderV9>): void
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| ------- | ---------------- | ---- | :-------------------- | | ------- | ---------------- | ---- | :-------------------- |
| url | string | 是 | 需要加载的 URL。 | | url | string \| Resource | 是 | 需要加载的 URL。 |
| headers | Array\<[HeaderV9](#headerv9)> | 否 | URL的附加HTTP请求头。 | | headers | Array\<[HeaderV9](#headerv9)> | 否 | URL的附加HTTP请求头。 |
**错误码** **错误码:**
以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md) 以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md)
...@@ -254,9 +254,9 @@ loadData(data: string, mimeType: string, encoding: string, baseUrl?: string, his ...@@ -254,9 +254,9 @@ loadData(data: string, mimeType: string, encoding: string, baseUrl?: string, his
| mimeType | string | 是 | 媒体类型(MIME)。 | | mimeType | string | 是 | 媒体类型(MIME)。 |
| encoding | string | 是 | 编码类型,具体为“Base64"或者”URL编码。 | | encoding | string | 是 | 编码类型,具体为“Base64"或者”URL编码。 |
| baseUrl | string | 否 | 指定的一个URL路径(“http”/“https”/"data"协议),并由Web组件赋值给window.origin。 | | baseUrl | string | 否 | 指定的一个URL路径(“http”/“https”/"data"协议),并由Web组件赋值给window.origin。 |
| historyUrl | string | 否 | 历史记录URL。非空时,可被历史记录管理,实现前进后退功能。当baseUrl为空时,此属性无效。 | | historyUrl | string | 否 | 用作历史记录所使用的URL。非空时,历史记录以此URL进行管理。当baseUrl为空时,此属性无效。 |
**错误码** **错误码:**
以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md) 以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md)
...@@ -310,7 +310,7 @@ accessForward(): boolean ...@@ -310,7 +310,7 @@ accessForward(): boolean
| ------- | --------------------------------- | | ------- | --------------------------------- |
| boolean | 可以前进返回true,否则返回false。 | | boolean | 可以前进返回true,否则返回false。 |
**错误码** **错误码:**
以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md) 以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md)
...@@ -354,7 +354,7 @@ forward(): void ...@@ -354,7 +354,7 @@ forward(): void
**系统能力:** SystemCapability.Web.Webview.Core **系统能力:** SystemCapability.Web.Webview.Core
**错误码** **错误码:**
以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md) 以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md)
...@@ -447,7 +447,7 @@ backward(): void ...@@ -447,7 +447,7 @@ backward(): void
**系统能力:** SystemCapability.Web.Webview.Core **系统能力:** SystemCapability.Web.Webview.Core
**错误码** **错误码:**
以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md) 以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md)
...@@ -805,6 +805,14 @@ struct Index { ...@@ -805,6 +805,14 @@ struct Index {
build() { build() {
Column() { Column() {
Button('refresh')
.onClick(() => {
try {
this.controller.refresh();
} catch (error) {
console.error(`Errorcode: ${error.code}, Message: ${error.message}`);
}
})
Button('Register JavaScript To Window') Button('Register JavaScript To Window')
.onClick(() => { .onClick(() => {
try { try {
...@@ -833,7 +841,7 @@ runJavaScript(script: string, callback : AsyncCallback\<string>): void ...@@ -833,7 +841,7 @@ runJavaScript(script: string, callback : AsyncCallback\<string>): void
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------------------- | ---- | ---------------------------- | | -------- | -------------------- | ---- | ---------------------------- |
| script | string | 是 | JavaScript脚本。 | | script | string | 是 | JavaScript脚本。 |
| callback | AsyncCallback\<string> | | 回调执行JavaScript脚本结果。JavaScript脚本若执行失败或无返回值时,返回null。 | | callback | AsyncCallback\<string> | | 回调执行JavaScript脚本结果。JavaScript脚本若执行失败或无返回值时,返回null。 |
**错误码:** **错误码:**
...@@ -1059,9 +1067,9 @@ searchAllAsync(searchString: string): void ...@@ -1059,9 +1067,9 @@ searchAllAsync(searchString: string): void
**参数:** **参数:**
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | 参数名 | 类型 | 必填 | 说明 |
| ------------ | -------- | ---- | ------ | -------------- | | ------------ | -------- | ---- | -------------- |
| searchString | string | 是 | - | 查找的关键字。 | | searchString | string | 是 | 查找的关键字。 |
**错误码:** **错误码:**
...@@ -1295,7 +1303,7 @@ struct WebComponent { ...@@ -1295,7 +1303,7 @@ struct WebComponent {
| ---------------------- | ----------------- | | ---------------------- | ----------------- |
| Array\<WebMessagePort> | web消息端口列表。 | | Array\<WebMessagePort> | web消息端口列表。 |
**错误码** **错误码:**
以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md) 以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md)
...@@ -1348,7 +1356,7 @@ postMessage(name: string, ports: Array\<WebMessagePort>, uri: string): void ...@@ -1348,7 +1356,7 @@ postMessage(name: string, ports: Array\<WebMessagePort>, uri: string): void
| ports | Array\<WebMessagePort> | 是 | 接收该消息的URI。 | | ports | Array\<WebMessagePort> | 是 | 接收该消息的URI。 |
| uri | string | 是 | 接收该消息的URI。 | | uri | string | 是 | 接收该消息的URI。 |
**错误码** **错误码:**
以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md) 以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md)
...@@ -1472,7 +1480,7 @@ requestFocus(): void ...@@ -1472,7 +1480,7 @@ requestFocus(): void
**系统能力:** SystemCapability.Web.Webview.Core **系统能力:** SystemCapability.Web.Webview.Core
**错误码** **错误码:**
以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md) 以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md)
...@@ -1515,7 +1523,7 @@ zoomIn(): void ...@@ -1515,7 +1523,7 @@ zoomIn(): void
**系统能力:** SystemCapability.Web.Webview.Core **系统能力:** SystemCapability.Web.Webview.Core
**错误码** **错误码:**
以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md) 以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md)
...@@ -1559,7 +1567,7 @@ zoomOut(): void ...@@ -1559,7 +1567,7 @@ zoomOut(): void
**系统能力:** SystemCapability.Web.Webview.Core **系统能力:** SystemCapability.Web.Webview.Core
**错误码** **错误码:**
以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md) 以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md)
...@@ -1609,7 +1617,7 @@ getHitTestValue(): HitTestValue ...@@ -1609,7 +1617,7 @@ getHitTestValue(): HitTestValue
| ------------ | -------------------- | | ------------ | -------------------- |
| [HitTestValue](#hittestvalue) | 点击区域的元素信息。 | | [HitTestValue](#hittestvalue) | 点击区域的元素信息。 |
**错误码** **错误码:**
以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md) 以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md)
...@@ -1660,7 +1668,7 @@ getWebId(): number ...@@ -1660,7 +1668,7 @@ getWebId(): number
| ------ | --------------------- | | ------ | --------------------- |
| number | 当前Web组件的索引值。 | | number | 当前Web组件的索引值。 |
**错误码** **错误码:**
以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md) 以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md)
...@@ -1710,7 +1718,7 @@ getUserAgent(): string ...@@ -1710,7 +1718,7 @@ getUserAgent(): string
| ------ | -------------- | | ------ | -------------- |
| string | 默认用户代理。 | | string | 默认用户代理。 |
**错误码** **错误码:**
以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md) 以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md)
...@@ -1760,7 +1768,7 @@ getTitle(): string ...@@ -1760,7 +1768,7 @@ getTitle(): string
| ------ | -------------------- | | ------ | -------------------- |
| string | 返回文件选择器标题。 | | string | 返回文件选择器标题。 |
**错误码** **错误码:**
以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md) 以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md)
...@@ -1810,7 +1818,7 @@ getPageHeight(): number ...@@ -1810,7 +1818,7 @@ getPageHeight(): number
| ------ | -------------------- | | ------ | -------------------- |
| number | 当前网页的页面高度。 | | number | 当前网页的页面高度。 |
**错误码** **错误码:**
以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md) 以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md)
...@@ -1862,7 +1870,7 @@ storeWebArchive(baseName: string, autoName: boolean, callback: AsyncCallback\<st ...@@ -1862,7 +1870,7 @@ storeWebArchive(baseName: string, autoName: boolean, callback: AsyncCallback\<st
| autoName | boolean | 是 | 决定是否自动生成文件名。 如果为false,则将baseName作为文件存储路径。 如果为true,则假定baseName是一个目录,将根据当前页的Url自动生成文件名。 | | autoName | boolean | 是 | 决定是否自动生成文件名。 如果为false,则将baseName作为文件存储路径。 如果为true,则假定baseName是一个目录,将根据当前页的Url自动生成文件名。 |
| callback | AsyncCallback\<string> | 是 | 返回文件存储路径,保持网页失败会返回null。 | | callback | AsyncCallback\<string> | 是 | 返回文件存储路径,保持网页失败会返回null。 |
**错误码** **错误码:**
以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md) 以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md)
...@@ -1927,7 +1935,7 @@ storeWebArchive(baseName: string, autoName: boolean): Promise\<string> ...@@ -1927,7 +1935,7 @@ storeWebArchive(baseName: string, autoName: boolean): Promise\<string>
| --------------- | ----------------------------------------------------- | | --------------- | ----------------------------------------------------- |
| Promise\<string> | Promise实例,保存成功返回文件路径,保存失败返回null。 | | Promise\<string> | Promise实例,保存成功返回文件路径,保存失败返回null。 |
**错误码** **错误码:**
以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md) 以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md)
...@@ -1985,7 +1993,7 @@ getUrl(): string ...@@ -1985,7 +1993,7 @@ getUrl(): string
| ------ | ------------------- | | ------ | ------------------- |
| string | 当前页面的url地址。 | | string | 当前页面的url地址。 |
**错误码** **错误码:**
以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md) 以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md)
...@@ -2029,7 +2037,7 @@ stop(): void ...@@ -2029,7 +2037,7 @@ stop(): void
**系统能力:** SystemCapability.Web.Webview.Core **系统能力:** SystemCapability.Web.Webview.Core
**错误码** **错误码:**
以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md) 以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md)
...@@ -2078,7 +2086,7 @@ backOrForward(step: number): void ...@@ -2078,7 +2086,7 @@ backOrForward(step: number): void
| ------ | -------- | ---- | ---------------------- | | ------ | -------- | ---- | ---------------------- |
| step | number | 是 | 需要前进或后退的步长。 | | step | number | 是 | 需要前进或后退的步长。 |
**错误码** **错误码:**
以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md) 以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md)
...@@ -2138,7 +2146,7 @@ static getCookie(url: string): string ...@@ -2138,7 +2146,7 @@ static getCookie(url: string): string
| ------ | ------------------------- | | ------ | ------------------------- |
| string | 指定url对应的cookie的值。 | | string | 指定url对应的cookie的值。 |
**错误码** **错误码:**
以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md) 以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md)
...@@ -2189,14 +2197,14 @@ static setCookie(url: string, value: string): void ...@@ -2189,14 +2197,14 @@ static setCookie(url: string, value: string): void
| url | string | 是 | 要设置的cookie所属的url。 | | url | string | 是 | 要设置的cookie所属的url。 |
| value | string | 是 | 要设置的cookie的值。 | | value | string | 是 | 要设置的cookie的值。 |
**错误码** **错误码:**
以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md) 以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md)
| 错误码ID | 错误信息 | | 错误码ID | 错误信息 |
| -------- | ------------------------------------------------------ | | -------- | ------------------------------------------------------ |
| 17100002 | Invalid url. | | 17100002 | Invalid url. |
| 17100005 | Invaild cookie value. | | 17100005 | Invalid cookie value. |
**示例:** **示例:**
...@@ -3217,6 +3225,133 @@ struct WebComponent { ...@@ -3217,6 +3225,133 @@ struct WebComponent {
} }
``` ```
## WebAsyncController
通过WebAsyncController可以控制Web组件具有异步回调通知的行为,一个WebAsyncController对象控制一个Web组件。
### 创建对象
```ts
// xxx.ets
import web_webview from '@ohos.web.webview'
@Entry
@Component
struct WebComponent {
controller: WebController = new WebController();
webAsyncController: WebAsyncController = new web_webview.WebAsyncController(this.controller)
build() {
Column() {
Web({ src: 'www.example.com', controller: this.controller })
}
}
}
```
### constructor<sup>9+</sup>
constructor(controller: WebController)
WebAsyncController的创建需要与一个[WebController](../arkui-ts/ts-basic-components-web.md#webcontroller)进行绑定。
**系统能力:** SystemCapability.Web.Webview.Core
**参数:**
| 参数名| 类型 | 必填 | 说明 |
| ----- | ---- | ---- | --- |
| controller | [WebController](../arkui-ts/ts-basic-components-web.md#webcontroller) | 是 | 所绑定的WebviewController。|
### storeWebArchive<sup>9+</sup>
storeWebArchive(baseName: string, autoName: boolean, callback: AsyncCallback\<string>): void
以回调方式异步保存当前页面。
**系统能力:** SystemCapability.Web.Webview.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ---------------------------------------- | ---- | ----------------------------------- |
| baseName | string | 是 | 文件存储路径,该值不能为空。
| autoName | boolean | 是 | 决定是否自动生成文件名。<br/>如果为false,则将baseName作为文件存储路径。<br/>如果为true,则假定baseName是一个目录,将根据当前页的Url自动生成文件名。
| callback | AsyncCallback\<string> | 是 | 返回文件存储路径,保持网页失败会返回null。 |
**示例:**
```ts
// xxx.ets
import web_webview from '@ohos.web.webview'
@Entry
@Component
struct WebComponent {
controller: WebController = new WebController()
build() {
Column() {
Button('saveWebArchive')
.onClick(() => {
let webAsyncController = new web_webview.WebAsyncController(this.controller)
webAsyncController.storeWebArchive("/data/storage/el2/base/", true, (filename) => {
if (filename != null) {
console.info(`save web archive success: ${filename}`)
}
})
})
Web({ src: 'www.example.com', controller: this.controller })
}
}
}
```
### storeWebArchive<sup>9+</sup>
storeWebArchive(baseName: string, autoName: boolean): Promise\<string>
以Promise方式异步保存当前页面。
**系统能力:** SystemCapability.Web.Webview.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ---------------------------------------- | ---- | ----------------------------------- |
| baseName | string | 是 | 文件存储路径,该值不能为空。
| autoName | boolean | 是 | 决定是否自动生成文件名。<br/>如果为false,则将baseName作为文件存储路径。<br/>如果为true,则假定baseName是一个目录,将根据当前页的Url自动生成文件名。
**返回值:**
| 类型 | 说明 |
| ---------------------------------------- | ---------------------------------------- |
| Promise<string> | Promise实例,保存成功返回文件路径,保存失败返回null。 |
**示例:**
```ts
// xxx.ets
import web_webview from '@ohos.web.webview'
@Entry
@Component
struct WebComponent {
controller: WebController = new WebController();
build() {
Column() {
Button('saveWebArchive')
.onClick(() => {
let webAsyncController = new web_webview.WebAsyncController(this.controller);
webAsyncController.storeWebArchive("/data/storage/el2/base/", true)
.then(filename => {
if (filename != null) {
console.info(`save web archive success: ${filename}`)
}
})
})
Web({ src: 'www.example.com', controller: this.controller })
}
}
}
```
## GeolocationPermissions ## GeolocationPermissions
web组件地理位置权限管理对象。 web组件地理位置权限管理对象。
...@@ -3231,9 +3366,9 @@ static allowGeolocation(origin: string): void ...@@ -3231,9 +3366,9 @@ static allowGeolocation(origin: string): void
**参数:** **参数:**
| 参数名 | 类型 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ------------------ | | ------ | ------ | ---- | ------------------ |
| origin | string | 指定源的字符串索引 | | origin | string | 是 |指定源的字符串索引 |
**错误码:** **错误码:**
...@@ -3388,7 +3523,7 @@ static getAccessibleGeolocation(origin: string): Promise\<boolean> ...@@ -3388,7 +3523,7 @@ static getAccessibleGeolocation(origin: string): Promise\<boolean>
**参数:** **参数:**
| 参数名 | 参数类型 | 必填 | 参数描述 | | 参数名 | 类型 | 必填 | 说明 |
| ------ | -------- | ---- | -------------------- | | ------ | -------- | ---- | -------------------- |
| origin | string | 是 | 指定源的字符串索引。 | | origin | string | 是 | 指定源的字符串索引。 |
......
# 延迟任务调度
本模块提供延迟任务注册、取消、查询的能力。
开发者在开发应用时,通过调用延迟任务注册接口,注册对实时性要求不高的延迟任务,该任务默认由系统安排,在系统空闲时根据性能、功耗、热等情况进行调度执行。
> **说明:**
>
> - 从API Version 9 开始,该接口不再维护,推荐使用新接口[@ohos.resourceschedule.workScheduler (延迟任务调度)](js-apis-resourceschedule-workScheduler.md)。
> - 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
> - 本模块接口仅可在Stage模型下使用。
> - 延迟任务调度约束见[延迟任务调度约束](../../task-management/background-task-overview.md#延迟任务调度约束)。
## 导入模块
```js
import workScheduler from '@ohos.workScheduler';
```
## workScheduler.startWork
startWork(work: WorkInfo): boolean
通知WorkSchedulerService将工作添加到执行队列。
**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler
**参数**
| 名称 | 类型 | 必填 | 说明 |
| ---- | --------------------- | ---- | -------------- |
| work | [WorkInfo](#workinfo) | 是 | 指示要添加到执行队列的工作。 |
**返回值**
| 类型 | 说明 |
| ------- | -------------------------------- |
| boolean | 如果工作成功添加到执行队列,则返回true,否则返回false。 |
**示例**
```js
let workInfo = {
workId: 1,
batteryStatus:workScheduler.BatteryStatus.BATTERY_STATUS_LOW,
isRepeat: false,
isPersisted: true,
bundleName: "com.example.myapplication",
abilityName: "MyExtension",
parameters: {
mykey0: 1,
mykey1: "string value",
mykey2: true,
mykey3: 1.5
}
}
let res = workScheduler.startWork(workInfo);
console.info(`workschedulerLog res: ${res}`);
```
## workScheduler.stopWork
stopWork(work: WorkInfo, needCancel?: boolean): boolean
通知WorkSchedulerService停止指定工作。
**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler
**参数**
| 名称 | 类型 | 必填 | 说明 |
| ---------- | --------------------- | ---- | ---------- |
| work | [WorkInfo](#workinfo) | 是 | 指示要停止的工作。 |
| needCancel | boolean | 是 | 是否需要取消的工作。 |
**返回值**
| 类型 | 说明 |
| ------- | ----------------------- |
| boolean | 如果成功,则返回true,否则返回false。 |
**示例**
```js
let workInfo = {
workId: 1,
batteryStatus:workScheduler.BatteryStatus.BATTERY_STATUS_LOW,
isRepeat: false,
isPersisted: true,
bundleName: "com.example.myapplication",
abilityName: "MyExtension",
parameters: {
mykey0: 1,
mykey1: "string value",
mykey2: true,
mykey3: 1.5
}
}
let res = workScheduler.stopWork(workInfo, false);
console.info(`workschedulerLog res: ${res}`);
```
## workScheduler.getWorkStatus
getWorkStatus(workId: number, callback : AsyncCallback\<WorkInfo>): void
获取工作的最新状态,使用Callback形式返回。
**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler
**参数**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------- | ---- | ---------------------------------------- |
| workId | number | 是 | work的id。 |
| callback | AsyncCallback\<[WorkInfo](#workinfo)> | 是 | 指定的callback回调方法。如果指定的工作Id有效,则返回从WorkSchedulerService获取的有效工作状态;否则返回null。 |
**示例**
```js
workScheduler.getWorkStatus(50, (err, res) => {
if (err) {
console.info(`workschedulerLog getWorkStatus failed, because: ${err.code}`);
} else {
for (let item in res) {
console.info(`workschedulerLog getWorkStatus success, ${item} is: ${res[item]}`);
}
}
});
```
## workScheduler.getWorkStatus
getWorkStatus(workId: number): Promise\<WorkInfo>
获取工作的最新状态,使用Promise形式返回。
**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler
**参数**
| 名称 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | -------- |
| workId | number | 是 | work的id。 |
**返回值**
| 类型 | 说明 |
| ------------------------------- | ---------------------------------------- |
| Promise\<[WorkInfo](#workinfo)> | 指定的Promise回调方法。如果指定的工作ID有效,则返回从WorkSchedulerService获取的有效工作状态;否则返回null。 |
**示例**
```js
workScheduler.getWorkStatus(50).then((res) => {
for (let item in res) {
console.info(`workschedulerLog getWorkStatus success, ${item} is: ${res[item]}`);
}
}).catch((err) => {
console.info(`workschedulerLog getWorkStatus failed, because: ${err.code}`);
})
```
## workScheduler.obtainAllWorks
obtainAllWorks(callback : AsyncCallback\<void>): Array\<WorkInfo>
获取与当前应用程序关联的所有工作,使用Callback形式返回。
**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler
**参数**
| 名称 | 类型 | 必填 | 说明 |
| -------- | -------------------- | ---- | ------------------------------- |
| callback | AsyncCallback\<void> | 是 | 指定的callback回调方法。返回与应用程序关联的所有工作。 |
**返回值**
| 类型 | 说明 |
| ----------------------------- | --------------- |
| Array\<[WorkInfo](#workinfo)> | 返回与应用程序关联的所有工作。 |
**示例**
```js
workScheduler.obtainAllWorks((err, res) =>{
if (err) {
console.info(`workschedulerLog obtainAllWorks failed, because: ${err.code}`);
} else {
console.info(`workschedulerLog obtainAllWorks success, data is: ${JSON.stringify(res)}`);
}
});
```
## workScheduler.obtainAllWorks
obtainAllWorks(): Promise<Array\<WorkInfo>>
获取与当前应用程序关联的所有工作,使用Promise形式返回。
**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler
**返回值**
| 类型 | 说明 |
| -------------------------------------- | ------------------------------ |
| Promise<Array\<[WorkInfo](#workinfo)>> | 指定的Promise回调方法。返回与应用程序关联的所有工作。 |
**示例**
```js
workScheduler.obtainAllWorks().then((res) => {
console.info(`workschedulerLog obtainAllWorks success, data is: ${JSON.stringify(res)}`);
}).catch((err) => {
console.info(`workschedulerLog obtainAllWorks failed, because: ${err.code}`);
})
```
## workScheduler.stopAndClearWorks
stopAndClearWorks(): boolean
停止和取消与当前应用程序关联的所有工作。
**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler
**示例**
```js
let res = workScheduler.stopAndClearWorks();
console.info(`workschedulerLog res: ${res}`);
```
## workScheduler.isLastWorkTimeOut
isLastWorkTimeOut(workId: number, callback : AsyncCallback\<void>): boolean
检查指定工作的最后一次执行是否为超时操作,使用Callback形式返回。
**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler
**参数**
| 名称 | 类型 | 必填 | 说明 |
| -------- | -------------------- | ---- | ---------------------------------------- |
| workId | number | 是 | work的id。 |
| callback | AsyncCallback\<void> | 是 | 指定的callback回调方法。如果指定工作的最后一次执行是超时操作,则返回true;否则返回false。 |
**返回值**
| 类型 | 说明 |
| ------- | ---------------------------------------- |
| boolean | 指定的callback回调方法。如果指定工作的最后一次执行是超时操作,则返回true;否则返回false。 |
**示例**
```js
workScheduler.isLastWorkTimeOut(500, (err, res) =>{
if (err) {
console.info(`workschedulerLog isLastWorkTimeOut failed, because: ${err.code}`);
} else {
console.info(`workschedulerLog isLastWorkTimeOut success, data is: ${res}`);
}
});
```
## workScheduler.isLastWorkTimeOut
isLastWorkTimeOut(workId: number): Promise\<boolean>
检查指定工作的最后一次执行是否为超时操作,使用Promise形式返回。
**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler
**参数**
| 名称 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | -------- |
| workId | number | 是 | work的id。 |
**返回值**
| 类型 | 说明 |
| ----------------- | ---------------------------------------- |
| Promise\<boolean> | 指定的Promise回调方法。如果指定工作的最后一次执行是超时操作,则返回true;否则返回false。 |
**示例**
```js
workScheduler.isLastWorkTimeOut(500)
.then(res => {
console.info(`workschedulerLog isLastWorkTimeOut success, data is: ${res}`);
})
.catch(err => {
console.info(`workschedulerLog isLastWorkTimeOut failed, because: ${err.code}`);
});
```
## WorkInfo
提供工作的具体信息。WorkInfo设置参数约束见[延迟任务调度概述](../../task-management/background-task-overview.md#延迟任务调度约束)
**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler
| 名称 | 类型 | 必填 | 说明 |
| --------------- | --------------------------------- | ---- | ---------------- |
| workId | number | 是 | 当前工作的ID |
| bundleName | string | 是 | 延迟任务包名 |
| abilityName | string | 是 | 延迟任务回调通知的组件名(必填) |
| networkType | [NetworkType](#networktype) | 否 | 网络类型 |
| isCharging | boolean | 否 | 是否充电 |
| chargerType | [ChargingType](#chargingtype) | 否 | 充电类型 |
| batteryLevel | number | 否 | 电量 |
| batteryStatus | [BatteryStatus](#batterystatus) | 否 | 电池状态 |
| storageRequest | [StorageRequest](#storagerequest) | 否 | 存储状态 |
| isRepeat | boolean | 否 | 是否循环任务 |
| repeatCycleTime | number | 否 | 循环间隔 |
| repeatCount | number | 否 | 循环次数 |
| isPersisted | boolean | 否 | 是否持久化保存工作 |
| isDeepIdle | boolean | 否 | 是否要求设备进入空闲状态 |
| idleWaitTime | number | 否 | 空闲等待时间 |
| parameters | {[key: string]: any} | 否 | 携带参数信息 |
## NetworkType
触发工作的网络类型。
**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler
| 名称 | 值 | 说明 |
| ---------------------- | ---- | ----------------------- |
| NETWORK_TYPE_ANY | 0 | 表示这个触发条件是任何类型的网络连接。 |
| NETWORK_TYPE_MOBILE | 1 | 表示这个触发条件是Mobile网络连接。 |
| NETWORK_TYPE_WIFI | 2 | 表示这个触发条件是Wifi类型的网络连接。 |
| NETWORK_TYPE_BLUETOOTH | 3 | 表示这个触发条件是Bluetooth网络连接。 |
| NETWORK_TYPE_WIFI_P2P | 4 | 表示这个触发条件是Wifi P2P网络连接。 |
| NETWORK_TYPE_ETHERNET | 5 | 表示这个触发条件是有线网络连接。 |
## ChargingType
触发工作的充电类型。
**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler
| 名称 | 值 | 说明 |
| ------------------------- | ---- | -------------------- |
| CHARGING_PLUGGED_ANY | 0 | 表示这个触发条件是任何类型的充电器连接。 |
| CHARGING_PLUGGED_AC | 1 | 表示这个触发条件是直流充电器连接。 |
| CHARGING_PLUGGED_USB | 2 | 表示这个触发条件是USB充连接。 |
| CHARGING_PLUGGED_WIRELESS | 3 | 表示这个触发条件是无线充电器连接。 |
## BatteryStatus
触发工作的电池状态。
**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler
| 名称 | 值 | 说明 |
| -------------------------- | ---- | -------------------------- |
| BATTERY_STATUS_LOW | 0 | 表示这个触发条件是低电告警。 |
| BATTERY_STATUS_OKAY | 1 | 表示这个触发条件是从低电恢复到正常电量。 |
| BATTERY_STATUS_LOW_OR_OKAY | 2 | 表示这个触发条件是从低电恢复到正常电量或者低电告警。 |
## StorageRequest
触发工作的存储状态。
**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler
| 名称 | 值 | 说明 |
| ------------------------- | ---- | ------------------------------ |
| STORAGE_LEVEL_LOW | 0 | 表示这个触发条件是存储空间不足。 |
| STORAGE_LEVEL_OKAY | 1 | 表示这个触发条件是从存储空间不足恢复到正常。 |
| STORAGE_LEVEL_LOW_OR_OKAY | 2 | 表示这个触发条件是从存储空间不足恢复到正常或者存储空间不足。 |
\ No newline at end of file
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
1. 随机生成算法库密钥对象。该对象可用于后续的加解密等操作。 1. 随机生成算法库密钥对象。该对象可用于后续的加解密等操作。
2. 根据指定数据生成算法库密钥对象(也就是将外部或存储的二进制数据转换为算法库的密钥对象)。该对象可用于后续的加解密等操作。 2. 根据指定数据生成算法库密钥对象(也就是将外部或存储的二进制数据转换为算法库的密钥对象)。该对象可用于后续的加解密等操作。
3. 获取算法库密钥对象的二进制数据,用于存储或传输。 3. 获取算法库密钥对象的二进制数据,用于存储或传输。
> **说明**:密钥对象Key包括对称密钥SymKey和非对称密钥(公钥PubKey和私钥PriKey),其中公钥和私钥组成密钥对KeyPair。密钥之间的具体关系可参考[接口声明](../reference/apis/js-apis-cryptoFramework.md)。 > **说明**:密钥对象Key包括对称密钥SymKey和非对称密钥(公钥PubKey和私钥PriKey),其中公钥和私钥组成密钥对KeyPair。密钥之间的具体关系可参考[API参考](../reference/apis/js-apis-cryptoFramework.md)。
**接口及参数说明** **接口及参数说明**
...@@ -107,7 +107,7 @@ function testGenerateAesKey() { ...@@ -107,7 +107,7 @@ function testGenerateAesKey() {
import cryptoFramework from '@ohos.security.cryptoFramework'; import cryptoFramework from '@ohos.security.cryptoFramework';
function convertAsyKey() { function convertAsyKey() {
let rsaGenerator = cfm.createAsyKeyGenerator("RSA1024"); let rsaGenerator = cryptoFramework.createAsyKeyGenerator("RSA1024");
let pkval = new Uint8Array([48,129,159,48,13,6,9,42,134,72,134,247,13,1,1,1,5,0,3,129,141,0,48,129,137,2,129,129,0,174,203,113,83,113,3,143,213,194,79,91,9,51,142,87,45,97,65,136,24,166,35,5,179,42,47,212,79,111,74,134,120,73,67,21,19,235,80,46,152,209,133,232,87,192,140,18,206,27,106,106,169,106,46,135,111,118,32,129,27,89,255,183,116,247,38,12,7,238,77,151,167,6,102,153,126,66,28,253,253,216,64,20,138,117,72,15,216,178,37,208,179,63,204,39,94,244,170,48,190,21,11,73,169,156,104,193,3,17,100,28,60,50,92,235,218,57,73,119,19,101,164,192,161,197,106,105,73,2,3,1,0,1]); let pkval = new Uint8Array([48,129,159,48,13,6,9,42,134,72,134,247,13,1,1,1,5,0,3,129,141,0,48,129,137,2,129,129,0,174,203,113,83,113,3,143,213,194,79,91,9,51,142,87,45,97,65,136,24,166,35,5,179,42,47,212,79,111,74,134,120,73,67,21,19,235,80,46,152,209,133,232,87,192,140,18,206,27,106,106,169,106,46,135,111,118,32,129,27,89,255,183,116,247,38,12,7,238,77,151,167,6,102,153,126,66,28,253,253,216,64,20,138,117,72,15,216,178,37,208,179,63,204,39,94,244,170,48,190,21,11,73,169,156,104,193,3,17,100,28,60,50,92,235,218,57,73,119,19,101,164,192,161,197,106,105,73,2,3,1,0,1]);
let pkBlob = {data : pkval}; let pkBlob = {data : pkval};
rsaGenerator.convertKey(pkBlob, null, function(err, keyPair) { rsaGenerator.convertKey(pkBlob, null, function(err, keyPair) {
......
# NewIP内核协议栈介绍 # New IP内核协议栈介绍
## 基本概念 ## 基本概念
NewIP在现有IP能力的基础上,以灵活轻量级报头和可变长多语义地址为基础,通过二三层协议融合,对协议去冗和压缩,减少冗余字节,实现高能效比,高净吞吐,提升通信效率。打造终端之间高效的横向通信,支撑超级终端的体验,实现异构网络的端到端互联。 New IP在现有IP能力的基础上,以灵活轻量级报头和可变长多语义地址为基础,通过二三层协议融合,对协议去冗和压缩,减少冗余字节,实现高能效比,高净吞吐,提升通信效率。打造终端之间高效的横向通信,支撑超级终端的体验,实现异构网络的端到端互联。
目前WiFi协议报文,三层报头和地址开销使得报文开销大,传输效率较低。 目前WiFi协议报文,三层报头和地址开销使得报文开销大,传输效率较低。
...@@ -14,21 +14,21 @@ IPv4地址长度固定4字节,IPv6地址长度固定16字节。 ...@@ -14,21 +14,21 @@ IPv4地址长度固定4字节,IPv6地址长度固定16字节。
IPv4网络层报头长度20~60字节,IPv6网络层报头长度40字节。 IPv4网络层报头长度20~60字节,IPv6网络层报头长度40字节。
``` ```
NewIP支持**可变长多语义地址(最短1字节)****可变长定制化报头封装(最短5字节)**,通过精简报文头开销,提升数据传输效率。 New IP支持**可变长多语义地址(最短1字节)****可变长定制化报头封装(最短5字节)**,通过精简报文头开销,提升数据传输效率。
NewIP报头开销,相比IPv4节省25.9%,相比IPv6节省44.9%。 New IP报头开销,相比IPv4节省25.9%,相比IPv6节省44.9%。
NewIP载荷传输效率,相比IPv4提高最少1%,相比IPv6提高最少2.33%。 New IP载荷传输效率,相比IPv4提高最少1%,相比IPv6提高最少2.33%。
| 对比场景 | 报头开销 | 载荷传输效率(WiFi MTU=1500B,BT MTU=255B) | | 对比场景 | 报头开销 | 载荷传输效率(WiFi MTU=1500B,BT MTU=255B) |
| -------------- | ------------ | ------------------------------------------- | | --------------- | ------------ | ------------------------------------------- |
| IPv4 for WiFi | 30+8+20=58 B | (1500-58)/1500=96.13% | | IPv4 for WiFi | 30+8+20=58 B | (1500-58)/1500=96.13% |
| IPv6 for WiFi | 30+8+40=78 B | (1500-78)/1500=94.8% | | IPv6 for WiFi | 30+8+40=78 B | (1500-78)/1500=94.8% |
| NewIP for WiFi | 30+8+5=43 B | (1500-43)/1500=97.13% | | New IP for WiFi | 30+8+5=43 B | (1500-43)/1500=97.13% |
## 可变长报头格式 ## 可变长报头格式
NewIP WiFi灵活极简报文头如下图所示,通过LLC Header中的EtherType = 0xEADD标识NewIP灵活极简报文。Bitmap是一组由0和1组成的二进制序列,每个二进制位的数值用于表示特定目标特性的存在性。 New IP WiFi灵活极简报文头如下图所示,通过LLC Header中的EtherType = 0xEADD标识New IP报文。Bitmap是一组由0和1组成的二进制序列,每个二进制位的数值用于表示特定目标字段的存在性。
![zh-cn_image-20220915140627223](figures/zh-cn_image-20220915140627223.png) ![zh-cn_image-20220915140627223](figures/zh-cn_image-20220915140627223.png)
...@@ -39,34 +39,34 @@ NewIP WiFi灵活极简报文头如下图所示,通过LLC Header中的EtherType ...@@ -39,34 +39,34 @@ NewIP WiFi灵活极简报文头如下图所示,通过LLC Header中的EtherType
**Bitmap字段定义如下:** **Bitmap字段定义如下:**
| 极简Bitmap标识 | Bitops | 字段长度 | 置位策略 | 备注 | | 极简Bitmap标识 | Bitops | 携带字段的长度 | 置位策略 | 备注 |
| -------------------------- | ------ | ---------------- | -------------- | --------------------------------------- | | ---------------------------- | ------ | ---------------- | -------------- | --------------------------------------- |
| Bitmap 1st Byte: | - | - | - | - | | Bitmap 1st Byte: | - | - | - | 下面8bit是从高位到低位排列。 |
| 标记位Dispatch | 0 | 不表示具体字段 | 置0 | 0:极简帧,1:普通帧。 | | 标记位Dispatch | 0 | - | 置0 | 0:极简封装报头,1:非极简封装报头。 |
| TTL | 1 | 1 Byte | 置1 | 剩余跳数。 | | 报文头是否携带TTL | 1 | 1 Byte | 置1 | 剩余跳数。 |
| Total Length | 2 | 2 Byte | UDP置0,TCP置1 | NewIP报文总长度(包含报头长度)。 | | 报文头是否携带Total Length | 2 | 2 Byte | UDP置0,TCP置1 | New IP报文总长度(包含报头长度)。 |
| Next Header | 3 | 1 Byte | 置1 | 协议类型。 | | 报文头是否携带Next Header | 3 | 1 Byte | 置1 | 协议类型。 |
| Reserve | 4 | 保留 | 置0 | 保留字段。 | | Reserve | 4 | 保留 | 置0 | 保留字段。 |
| Dest Address | 5 | 变长(1~8 Byte) | 置1 | 目的地址。 | | 报文头是否携带Dest Address | 5 | 变长(1~8 Byte) | 置1 | 目的地址。 |
| Source Address | 6 | 变长(1~8 Byte) | 由协议自行确定 | 源地址。 | | 报文头是否携带Source Address | 6 | 变长(1~8 Byte) | 由协议自行确定 | 源地址。 |
| 标记位,标志是否有2nd Byte | 7 | 不表示具体字段 | - | 0:bitmap结束,1:后跟另外8bit bitmap。 | | 标记位,标志是否有2nd Byte | 7 | - | - | 0:bitmap结束,1:后跟另外8bit bitmap。 |
| Bitmap 2nd Byte: | - | - | - | - | | Bitmap 2nd Byte: | - | - | - | 下面8bit是从高位到低位排列。 |
| Header Length | 0 | 1 Byte | - | NewIP报头长度。 | | 报文头是否携带Header Length | 0 | 1 Byte | - | New IP报头长度。 |
| Reserve | 1 | 保留 | 置0 | - | | Reserve | 1 | 保留 | 置0 | - |
| Reserve | 2 | 保留 | 置0 | - | | Reserve | 2 | 保留 | 置0 | - |
| Reserve | 3 | 保留 | 置0 | - | | Reserve | 3 | 保留 | 置0 | - |
| Reserve | 4 | 保留 | 置0 | - | | Reserve | 4 | 保留 | 置0 | - |
| Reserve | 5 | 保留 | 置0 | - | | Reserve | 5 | 保留 | 置0 | - |
| Reserve | 6 | 保留 | 置0 | - | | Reserve | 6 | 保留 | 置0 | - |
| 标记位,标志是否有3rd Byte | 7 | 不表示具体字段 | 置0 | 0:bitmap结束,1:后跟另外8bit bitmap。 | | 标记位,标志是否有3rd Byte | 7 | - | - | 0:bitmap结束,1:后跟另外8bit bitmap。 |
NewIP数据报头(极简模式)解析遇到新bitmap字段时的处理方法: New IP报头(极简封装)解析遇到新bitmap字段时的处理方法:
仅解析当前版本协议中已定义的bitmap字段,从第一个未知语义的bitmap字段开始,跳过后面的所有bitmap字段,直接通过header length定位到报文开始位置并解析报文。如果报头中携带了未知语义的bitmap字段,且未携带header length字段,则丢弃该数据包。 仅解析当前版本协议中已定义的bitmap字段,从第一个未知语义的bitmap字段开始,跳过后面的所有bitmap字段,直接通过header length定位到报文开始位置并解析报文。如果报头中携带了未知语义的bitmap字段,且未携带header length字段,则丢弃该数据包。
## 可变长地址格式 ## 可变长地址格式
NewIP采用自解释编码,编码格式如下所示: New IP支持可变长地址(IPv4/IPv6地址长度固定),支持自解析地址长度,报文头中可以不携带地址长度字段,New IP地址编码格式如下所示:
| First Byte | Semantics | 地址段有效范围 | | First Byte | Semantics | 地址段有效范围 |
| ---------- | ------------------------------------------------------------ | ------------------------------------------------------------ | | ---------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
...@@ -87,13 +87,13 @@ NewIP采用自解释编码,编码格式如下所示: ...@@ -87,13 +87,13 @@ NewIP采用自解释编码,编码格式如下所示:
## NewIP配置指导 ## New IP配置指导
启用NewIP,需要通过编译内核时打开相应的配置项及依赖,NewIP相关CONFIG如下: 启用New IP,需要通过编译内核时打开相应的配置项及依赖,New IP相关CONFIG如下:
```c ```c
CONFIG_NEWIP=y // 使能NewIP内核协议栈 CONFIG_NEWIP=y // 使能New IP内核协议栈
CONFIG_NEWIP_HOOKS=y // 使能NewIP内核侵入式修改插桩函数注册,使能NewIP的同时必须使用NewIP插桩功能 CONFIG_NEWIP_HOOKS=y // 使能New IP内核侵入式修改插桩函数注册,使能New IP的同时必须使用New IP HOOKS功能
``` ```
另有部分CONFIG被依赖: 另有部分CONFIG被依赖:
...@@ -104,15 +104,15 @@ VENDOR_HOOKS=y // 使能内核插桩基础框架 ...@@ -104,15 +104,15 @@ VENDOR_HOOKS=y // 使能内核插桩基础框架
备注: 备注:
1. 只在Linux 5.10内核上支持NewIP内核协议栈。 1. 只在Linux 5.10内核上支持New IP内核协议栈。
2. OpenHarmony linux内核要求所有原生内核代码侵入式修改,都要修改成插桩方式。 2. OpenHarmony linux内核要求所有原生内核代码侵入式修改,都要修改成插桩方式。
```c ```c
/* 将NewIP ehash函数注册到内核 */ /* 将New IP ehash函数注册到内核 */
register_trace_ninet_ehashfn_hook(&ninet_ehashfn_hook, NULL); register_trace_ninet_ehashfn_hook(&ninet_ehashfn_hook, NULL);
/* 下面是IPv4,IPv6协议栈总入口函数,在总入口函数内新增NewIP协议栈相关处理 */ /* 下面是IPv4,IPv6协议栈总入口函数,在总入口函数内新增New IP协议栈相关处理 */
static u32 sk_ehashfn(const struct sock *sk) static u32 sk_ehashfn(const struct sock *sk)
{ {
/* IPv6 */ /* IPv6 */
...@@ -128,7 +128,7 @@ static u32 sk_ehashfn(const struct sock *sk) ...@@ -128,7 +128,7 @@ static u32 sk_ehashfn(const struct sock *sk)
if (sk->sk_family == AF_NINET) { if (sk->sk_family == AF_NINET) {
u32 ret = 0; u32 ret = 0;
/* NewIP注册的ehash函数 */ /* New IP注册的ehash函数 */
trace_ninet_ehashfn_hook(sock_net(sk), &sk->sk_nip_rcv_saddr, sk->sk_num, trace_ninet_ehashfn_hook(sock_net(sk), &sk->sk_nip_rcv_saddr, sk->sk_num,
&sk->sk_nip_daddr, sk->sk_dport, &ret); &sk->sk_nip_daddr, sk->sk_dport, &ret);
return ret; return ret;
...@@ -144,7 +144,7 @@ static u32 sk_ehashfn(const struct sock *sk) ...@@ -144,7 +144,7 @@ static u32 sk_ehashfn(const struct sock *sk)
代码编译完成后,通过下面命令可以确认newip协议栈代码是否使能成功。 代码编译完成后,通过下面命令可以确认New IP协议栈代码是否使能成功。
```c ```c
find out/ -name *nip*.o find out/ -name *nip*.o
...@@ -157,32 +157,32 @@ out/kernel/OBJ/linux-5.10/net/newip/tcp_nip_output.o ...@@ -157,32 +157,32 @@ out/kernel/OBJ/linux-5.10/net/newip/tcp_nip_output.o
... ...
``` ```
禁用NewIP内核协议栈,删除CONFIG_NEWIP使能开关,删除out/kernel目录后重新编译。 禁用New IP内核协议栈,删除CONFIG_NEWIP使能开关,删除out/kernel目录后重新编译。
```c ```c
# CONFIG_NEWIP is not set # CONFIG_NEWIP is not set
# CONFIG_NEWIP_HOOKS is not set # CONFIG_NEWIP_HOOKS is not set
``` ```
## NewIP相关接口 ## New IP相关接口
用户态应用程序调用Socket API创建NewIP socket,采用NewIP极简帧头封装进行收发包,NewIP协议socket接口列表如下: 用户态应用程序调用Socket API创建New IP socket,采用New IP极简封装进行收发包,New IP协议socket接口列表如下:
| 函数 | 输入 | 输出 | 返回值 | 接口具体描述 | | 函数 | 输入 | 输出 | 返回值 | 接口具体描述 |
| -------- | ------------------------------------------------------------ | ---------------------------------------------- | ---------------- | ------------------------------------------------------------ | | -------- | ------------------------------------------------------------ | ---------------------------------------------- | ---------------- | ------------------------------------------------------------ |
| socket | int **domain**, int type, int **protocol** | NA | Socket句柄sockfd | 创建NewIP 协议类型socket,并返回socket实例所对应的句柄。**domain参数填写 AF_NINET,表示创建NewIP协议类型socket。protocol参数填写IPPROTO_TCP或IPPROTO_UDP**。 | | socket | int **domain**, int type, int **protocol** | NA | Socket句柄sockfd | 创建New IP 协议类型socket,并返回socket实例所对应的句柄。**domain参数填写 AF_NINET,表示创建New IP协议类型socket。protocol参数填写IPPROTO_TCP或IPPROTO_UDP**。 |
| bind | int sockfd, const **struct sockaddr_nin** *myaddr, socklen_t addrlen | NA | int,返回错误码 | 将创建的socket绑定到指定的IP地址和端口上。**myaddr->sin_family填写AF_NINET**。 | | bind | int sockfd, const **struct sockaddr_nin** *myaddr, socklen_t addrlen | NA | int,返回错误码 | 将创建的socket绑定到指定的IP地址和端口上。**myaddr->sin_family填写AF_NINET**。 |
| listen | int socket, int backlog | NA | int,返回错误码 | 服务端监听NewIP地址和端口。 | | listen | int socket, int backlog | NA | int,返回错误码 | 服务端监听New IP地址和端口。 |
| connect | int sockfd, const **struct sockaddr_nin** *addr, aocklen_t addrlen | NA | int,返回错误码 | 客户端创建至服务端的连接。 | | connect | int sockfd, const **struct sockaddr_nin** *addr, aocklen_t addrlen | NA | int,返回错误码 | 客户端创建至服务端的连接。 |
| accept | int sockfd, **struct sockaddr_nin** *address, socklen_t *address_len | NA | 返回socket的fd | 服务端返回已建链成功的socket。 | | accept | int sockfd, **struct sockaddr_nin** *address, socklen_t *address_len | NA | 返回socket的fd | 服务端返回已建链成功的socket。 |
| send | int sockfd, const void *msg, int len, unsigned int flags, const **struct sockaddr_nin** *dst_addr, int addrlen | NA | int,返回错误码 | 用于socket已连接的NewIP类型数据发送。 | | send | int sockfd, const void *msg, int len, unsigned int flags, const **struct sockaddr_nin** *dst_addr, int addrlen | NA | int,返回错误码 | 用于socket已连接的New IP类型数据发送。 |
| recv | int sockfd, size_t len, int flags, **struct sockaddr_nin** *src_addr, | void **buf, int* *fromlen | int,返回错误码 | 用于socket已连接的NewIP类型数据接收。 | | recv | int sockfd, size_t len, int flags, **struct sockaddr_nin** *src_addr, | void **buf, int* *fromlen | int,返回错误码 | 用于socket已连接的New IP类型数据接收。 |
| close | int sockfd | NA | int,返回错误码 | 关闭socket,释放资源。 | | close | int sockfd | NA | int,返回错误码 | 关闭socket,释放资源。 |
| ioctl | int sockfd, unsigned long cmd, ... | NA | int,返回错误码 | 对NewIP协议栈相关信息进行查询或更改。 | | ioctl | int sockfd, unsigned long cmd, ... | NA | int,返回错误码 | 对New IP协议栈相关信息进行查询或更改。 |
| sendto | int sockfd, const void *msg, int len, unsigned int flags, const **struct sockaddr** *dst_addr, int addrlen | NA | int,返回错误码 | 用于socket无连接的NewIP类型数据发送。 | | sendto | int sockfd, const void *msg, int len, unsigned int flags, const **struct sockaddr** *dst_addr, int addrlen | NA | int,返回错误码 | 用于socket无连接的New IP类型数据发送。 |
| recvfrom | int sockfd, size_t len, int flags, | void *buf, struct sockaddr *from, int *fromlen | int,返回错误码 | 用于socket无连接的NewIP类型数据接收。 | | recvfrom | int sockfd, size_t len, int flags, | void *buf, struct sockaddr *from, int *fromlen | int,返回错误码 | 用于socket无连接的New IP类型数据接收。 |
NewIP短地址结构如下: New IP短地址结构如下:
```c ```c
enum nip_8bit_addr_index { enum nip_8bit_addr_index {
...@@ -244,21 +244,21 @@ struct sockaddr_nin { ...@@ -244,21 +244,21 @@ struct sockaddr_nin {
}; };
``` ```
## NewIP开发说明 ## New IP开发说明
目前只在OpenHarmony Linux-5.10内核支持NewIP内核协议栈,只能在用户态人工配置NewIP地址和路由到内核,两台设备通过路由器WiFi连接。如果想配置NewIP地址和路由后自动切换到NewIP内核协议栈通信,应用可以参考下面蓝框中描述。 目前只在OpenHarmony Linux-5.10内核支持New IP内核协议栈,只能在用户态人工配置New IP地址和路由到内核,两台设备通过路由器WiFi连接。如果想配置New IP地址和路由后自动切换到New IP内核协议栈通信,应用可以参考下面蓝框中描述。
![zh-cn_image-20221009112548444](figures/zh-cn_image-20221009112548444.png) ![zh-cn_image-20221009112548444](figures/zh-cn_image-20221009112548444.png)
上图中NewIP地址,路由配置程序可以参考[代码仓examples代码](https://gitee.com/openharmony/communication_sfc_newip/tree/master/examples),根据CPU硬件差异更改Makefile中CC定义编译成二级制文件后推送到开发板,参考上图命令给设备配置NewIP地址和路由。 上图中New IP地址,路由配置程序可以参考[代码仓examples代码](https://gitee.com/openharmony/kernel_common_modules_newip/tree/master/examples),根据CPU硬件差异更改Makefile中CC定义编译成二级制文件后推送到开发板,参考上图命令给设备配置New IP地址和路由。
| 文件名 | 功能 | | 文件名 | 功能 |
| ------------------ | ------------------------------------------------------ | | ------------------ | -------------------------------------------------------- |
| nip_addr.c | NewIP可变长地址配置demo代码(可配置任意有效NewIP地址) | | nip_addr.c | New IP可变长地址配置demo代码(可配置任意有效New IP地址) |
| nip_route.c | NewIP路由配置demo代码(可配置任意有效NewIP地址) | | nip_route.c | New IP路由配置demo代码(可配置任意有效New IP地址) |
| check_nip_enable.c | 获取本机NewIP能力 | | check_nip_enable.c | 获取本机New IP能力 |
设备1上查看NewIP地址和路由: 设备1上查看New IP地址和路由:
```sh ```sh
# cat /proc/net/nip_addr # cat /proc/net/nip_addr
...@@ -268,7 +268,7 @@ struct sockaddr_nin { ...@@ -268,7 +268,7 @@ struct sockaddr_nin {
01 01 2149580801 wlan0 # 本机自发自收路由 01 01 2149580801 wlan0 # 本机自发自收路由
``` ```
设备2上查看NewIP地址和路由: 设备2上查看New IP地址和路由:
```sh ```sh
# cat /proc/net/nip_addr # cat /proc/net/nip_addr
...@@ -278,19 +278,19 @@ struct sockaddr_nin { ...@@ -278,19 +278,19 @@ struct sockaddr_nin {
02 02 2149580801 wlan0 # 本机自发自收路由 02 02 2149580801 wlan0 # 本机自发自收路由
``` ```
## NewIP收发包代码示例 ## New IP收发包代码示例
NewIP可变长地址配置,路由配置,UDP/TCP收发包demo代码链接如下,NewIP协议栈用户态接口使用方法可以参考[代码仓examples代码](https://gitee.com/openharmony/communication_sfc_newip/tree/master/examples)。demo代码内配置固定地址和路由,执行编译后二进制程序时不需要人工指定地址和路由。 New IP可变长地址配置,路由配置,UDP/TCP收发包demo代码链接如下,New IP协议栈用户态接口使用方法可以参考[代码仓examples代码](https://gitee.com/openharmony/kernel_common_modules_newip/tree/master/examples)。demo代码内配置固定地址和路由,执行编译后二进制程序时不需要人工指定地址和路由。
| 文件名 | 功能 | | 文件名 | 功能 |
| --------------------- | ----------------------------- | | --------------------- | ------------------------------ |
| nip_addr_cfg_demo.c | NewIP可变长地址配置demo代码 | | nip_addr_cfg_demo.c | New IP可变长地址配置demo代码 |
| nip_route_cfg_demo.c | NewIP路由配置demo代码 | | nip_route_cfg_demo.c | New IP路由配置demo代码 |
| nip_udp_server_demo.c | NewIP UDP收发包服务端demo代码 | | nip_udp_server_demo.c | New IP UDP收发包服务端demo代码 |
| nip_udp_client_demo.c | NewIP UDP收发包客户端demo代码 | | nip_udp_client_demo.c | New IP UDP收发包客户端demo代码 |
| nip_tcp_server_demo.c | NewIP TCP收发包服务端demo代码 | | nip_tcp_server_demo.c | New IP TCP收发包服务端demo代码 |
| nip_tcp_client_demo.c | NewIP TCP收发包客户端demo代码 | | nip_tcp_client_demo.c | New IP TCP收发包客户端demo代码 |
| nip_lib.c | 接口索引获取等API接口demo代码 | | nip_lib.c | 接口索引获取等API接口demo代码 |
**基础操作步骤:** **基础操作步骤:**
...@@ -302,9 +302,9 @@ NewIP可变长地址配置,路由配置,UDP/TCP收发包demo代码链接如 ...@@ -302,9 +302,9 @@ NewIP可变长地址配置,路由配置,UDP/TCP收发包demo代码链接如
3. 执行“ifconfig wlan0 up”开启网卡设备。 3. 执行“ifconfig wlan0 up”开启网卡设备。
4. 在设备1的sh下执行“./nip_addr_cfg_demo server”给服务端配置0xDE00(2字节)变长地址,在设备2的sh下执。行“./nip_addr_cfg_demo client”给客户端配置0x50(1字节)变长地址,通过“cat /proc/net/nip_addr”查看内核地址配置结果。 4. 在设备1的shell下执行“./nip_addr_cfg_demo server”给服务端配置0xDE00(2字节)变长地址,在设备2的shell下执。行“./nip_addr_cfg_demo client”给客户端配置0x50(1字节)变长地址,通过“cat /proc/net/nip_addr”查看内核地址配置结果。
5. 在设备1的sh下执行“./nip_route_cfg_demo server”给服务端配置路由,在设备2的sh下执行“./nip_route_cfg_demo client”给客户端配置路由,通过“cat /proc/net/nip_route”查看内核路由配置结果。 5. 在设备1的shell下执行“./nip_route_cfg_demo server”给服务端配置路由,在设备2的shell下执行“./nip_route_cfg_demo client”给客户端配置路由,通过“cat /proc/net/nip_route”查看内核路由配置结果。
以上步骤操作完成后,可以进行UDP/TCP收发包,收发包demo默认使用上面步骤中配置的地址和路由。 以上步骤操作完成后,可以进行UDP/TCP收发包,收发包demo默认使用上面步骤中配置的地址和路由。
...@@ -312,10 +312,10 @@ NewIP可变长地址配置,路由配置,UDP/TCP收发包demo代码链接如 ...@@ -312,10 +312,10 @@ NewIP可变长地址配置,路由配置,UDP/TCP收发包demo代码链接如
**UDP收发包操作步骤:** **UDP收发包操作步骤:**
先在服务端执行“./nip_udp_server_demo”,然后再在客户端执行“./nip_udp_client_demo”,客户端会发送10个NewIP报文,客户端收到报文后再发送给服务端。 先在服务端执行“./nip_udp_server_demo”,然后再在客户端执行“./nip_udp_client_demo”,客户端会发送10个New IP报文,服务端收到报文后再发送给客户端。
``` ```
服务端sh窗口打印内容: 服务端shell窗口打印内容:
Received -- 1661826989 498038 NIP_UDP # 0 -- from 0x50:57605 Received -- 1661826989 498038 NIP_UDP # 0 -- from 0x50:57605
Sending -- 1661826989 498038 NIP_UDP # 0 -- to 0x50:57605 Sending -- 1661826989 498038 NIP_UDP # 0 -- to 0x50:57605
Received -- 1661826990 14641 NIP_UDP # 1 -- from 0x50:57605 Received -- 1661826990 14641 NIP_UDP # 1 -- from 0x50:57605
...@@ -338,10 +338,10 @@ Received --1661827011 590576 NIP_UDP # 9 sock 3 success: 10/ 10/no= ...@@ -338,10 +338,10 @@ Received --1661827011 590576 NIP_UDP # 9 sock 3 success: 10/ 10/no=
**TCP收发包操作步骤:** **TCP收发包操作步骤:**
先在服务端执行“./nip_tcp_server_demo”,然后再在客户端执行“./nip_tcp_client_demo”,客户端会发送10个NewIP报文,客户端收到报文后再发送给服务端。 先在服务端执行“./nip_tcp_server_demo”,然后再在客户端执行“./nip_tcp_client_demo”,客户端会发送10个New IP报文,服务端收到报文后再发送给客户端。
``` ```
服务端sh窗口打印内容: 服务端shell窗口打印内容:
Received -- 1661760202 560605 NIP_TCP # 0 --:1024 Received -- 1661760202 560605 NIP_TCP # 0 --:1024
Sending -- 1661760202 560605 NIP_TCP # 0 --:1024 Sending -- 1661760202 560605 NIP_TCP # 0 --:1024
Received -- 1661760203 69254 NIP_TCP # 1 --:1024 Received -- 1661760203 69254 NIP_TCP # 1 --:1024
...@@ -352,7 +352,7 @@ Sending -- 1661760203 571604 NIP_TCP # 2 --:1024 ...@@ -352,7 +352,7 @@ Sending -- 1661760203 571604 NIP_TCP # 2 --:1024
Received -- 1661760207 86544 NIP_TCP # 9 --:1024 Received -- 1661760207 86544 NIP_TCP # 9 --:1024
Sending -- 1661760207 86544 NIP_TCP # 9 --:1024 Sending -- 1661760207 86544 NIP_TCP # 9 --:1024
客户端sh窗口打印内容: 客户端shell窗口打印内容:
Received --1661760202 560605 NIP_TCP # 0 sock 3 success: 1/ 1/no= 0 Received --1661760202 560605 NIP_TCP # 0 sock 3 success: 1/ 1/no= 0
Received --1661760203 69254 NIP_TCP # 1 sock 3 success: 2/ 2/no= 1 Received --1661760203 69254 NIP_TCP # 1 sock 3 success: 2/ 2/no= 1
... ...
...@@ -361,7 +361,7 @@ Received --1661760207 86544 NIP_TCP # 9 sock 3 success: 10/ 10/no= ...@@ -361,7 +361,7 @@ Received --1661760207 86544 NIP_TCP # 9 sock 3 success: 10/ 10/no=
## selinux规则说明 ## selinux规则说明
用户态进程操作NewIP socket需要添加selinux policy,否则操作会被拦截。 用户态进程操作New IP socket需要添加selinux policy,否则操作会被拦截。
```sh ```sh
# base\security\selinux\sepolicy\ohos_policy\xxx\xxx.te # base\security\selinux\sepolicy\ohos_policy\xxx\xxx.te
...@@ -379,18 +379,18 @@ allowxperm thread_xxx thread_xxx:socket ioctl { 0x8933 0x8916 0x890B }; ...@@ -379,18 +379,18 @@ allowxperm thread_xxx thread_xxx:socket ioctl { 0x8933 0x8916 0x890B };
## WireShark报文解析模板 ## WireShark报文解析模板
Wireshark默认报文解析规则无法解析NewIP报文,在WireShark配置中添加NewIP报文解析模板可以实现NewIP报文解析,[NewIP报文解析模板](https://gitee.com/openharmony/communication_sfc_newip/blob/master/tools/wireshark_cfg_for_newip.lua)详见代码仓。 Wireshark默认报文解析规则无法解析New IP报文,在WireShark配置中添加New IP报文解析模板可以实现New IP报文解析,[New IP报文解析模板](https://gitee.com/openharmony/kernel_common_modules_newip/blob/master/tools/wireshark_cfg_for_newip.lua)详见代码仓。
报文解析模板配置文件的方法: 报文解析模板配置文件的方法:
依次单击 Help -> About Wireshark -> Folders,打开Global Configuration目录,编辑init.lua文件。在末尾添加dofile(DATA_DIR..”newip.lua”),其中DATA_DIR即为newip.lua插件所在路径。 依次单击 Help -> About Wireshark -> Folders,打开Global Configuration目录,编辑init.lua文件。在末尾添加dofile(DATA_DIR..”newip.lua”),其中DATA_DIR即为newip.lua报文解析模板所在路径。
![zh-cn_image-20220930141628922](figures/zh-cn_image-20220930141628922.png) ![zh-cn_image-20220930141628922](figures/zh-cn_image-20220930141628922.png)
NewIP报文解析模板添加样例: New IP报文解析模板添加样例:
``` ```
NewIP报文解析模板存放路径: New IP报文解析模板存放路径:
D:\tools\WireShark\wireshark_cfg_for_newip.lua D:\tools\WireShark\wireshark_cfg_for_newip.lua
WireShark配置文件路径: WireShark配置文件路径:
...@@ -404,7 +404,9 @@ dofile("D:\\tools\\WireShark\\wireshark_cfg_for_newip.lua") ...@@ -404,7 +404,9 @@ dofile("D:\\tools\\WireShark\\wireshark_cfg_for_newip.lua")
#### ND请求 #### ND请求
NewIP邻居发现请求报文格式如下,NewIP极简报文头包含1字节的bitmap(0x76),bitmap标识后面携带TTL,报文总长度,上层协议类型,目的地址,源地址。NewIP ND请求报文包含报文类型,操作码,校验和和请求地址。 New IP邻居发现(Neighbor Discovery)请求报文格式如下,New IP极简报文头包含1字节的bitmap(0x76),bitmap标识后面携带TTL,报文总长度,上层协议类型,目的地址,源地址。New IP ND请求报文包含报文类型,操作码,校验和和请求地址。
备注:New IP支持变长地址(1字节~8字节),下图中1字节地址仅表示当前报文头中携带的地址是1字节。
![zh-cn_image-20221011144901470](figures/zh-cn_image-20221011144901470.png) ![zh-cn_image-20221011144901470](figures/zh-cn_image-20221011144901470.png)
...@@ -412,7 +414,9 @@ NewIP邻居发现请求报文格式如下,NewIP极简报文头包含1字节的 ...@@ -412,7 +414,9 @@ NewIP邻居发现请求报文格式如下,NewIP极简报文头包含1字节的
#### ND应答 #### ND应答
NewIP邻居发现应答报文格式如下,NewIP极简报文头包含2字节的bitmap(0x77,0x00),bitmap1标识后面携带TTL,报文总长度,上层协议类型,目的地址,源地址。bitmap2是字节对齐不携带任何数据(rk3568开发板链路层数据发送要求数据长度是偶数字节)。NewIP ND应答报文包含报文类型,操作码,校验和和邻居MAC地址长度,邻居MAC地址。 New IP邻居发现(Neighbor Discovery)应答报文格式如下,New IP极简报文头包含2字节的bitmap(0x77,0x00),bitmap1标识后面携带TTL,报文总长度,上层协议类型,目的地址,源地址。bitmap2是字节对齐不携带任何数据(rk3568开发板链路层数据发送要求数据长度是偶数字节)。New IP ND应答报文包含报文类型,操作码,校验和和邻居MAC地址长度,邻居MAC地址。
备注:New IP支持变长地址(1字节~8字节),下图中1字节地址仅表示当前报文头中携带的地址是1字节。
![zh-cn_image-20221011145157288](figures/zh-cn_image-20221011145157288.png) ![zh-cn_image-20221011145157288](figures/zh-cn_image-20221011145157288.png)
...@@ -420,7 +424,9 @@ NewIP邻居发现应答报文格式如下,NewIP极简报文头包含2字节的 ...@@ -420,7 +424,9 @@ NewIP邻居发现应答报文格式如下,NewIP极简报文头包含2字节的
#### TCP握手 #### TCP握手
TCP三次握手SYN报文格式如下,NewIP极简报文头包含2字节的bitmap(0x77,0x00),bitmap1标识后面携带TTL,报文总长度,上层协议类型,目的地址,源地址。bitmap2是字节对齐不携带任何数据(rk3568开发板链路层数据发送要求数据长度是偶数字节)。 TCP三次握手SYN报文格式如下,New IP极简报文头包含2字节的bitmap(0x77,0x00),bitmap1标识后面携带TTL,报文总长度,上层协议类型,目的地址,源地址。bitmap2是字节对齐不携带任何数据(rk3568开发板链路层数据发送要求数据长度是偶数字节)。
备注:New IP支持变长地址(1字节~8字节),下图中1字节地址仅表示当前报文头中携带的地址是1字节。
![image-20221011150018915](figures/zh-cn_image-20221011150018915.png) ![image-20221011150018915](figures/zh-cn_image-20221011150018915.png)
...@@ -428,7 +434,9 @@ TCP三次握手SYN报文格式如下,NewIP极简报文头包含2字节的bitma ...@@ -428,7 +434,9 @@ TCP三次握手SYN报文格式如下,NewIP极简报文头包含2字节的bitma
#### TCP数据包 #### TCP数据包
TCP数据格式如下,NewIP极简报文头包含2字节的bitmap(0x77,0x00),bitmap1标识后面携带TTL,报文总长度,上层协议类型,目的地址,源地址。bitmap2是字节对齐不携带任何数据(rk3568开发板链路层数据发送要求数据长度是偶数字节)。 TCP数据格式如下,New IP极简报文头包含2字节的bitmap(0x77,0x00),bitmap1标识后面携带TTL,报文总长度,上层协议类型,目的地址,源地址。bitmap2是字节对齐不携带任何数据(rk3568开发板链路层数据发送要求数据长度是偶数字节)。
备注:New IP支持变长地址(1字节~8字节),下图中1字节地址仅表示当前报文头中携带的地址是1字节。
![image-20221011150215316](figures/zh-cn_image-20221011150215316.png) ![image-20221011150215316](figures/zh-cn_image-20221011150215316.png)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册