提交 372ed3c3 编写于 作者: Y yupeng74@huawei.com

冲突修复

Signed-off-by: Nyupeng74@huawei.com <yupeng74@huawei.com>
......@@ -180,6 +180,7 @@ zh-cn/application-dev/reference/js-service-widget-ui/ @HelloCrease
zh-cn/application-dev/website.md @zengyawen
zh-cn/application-dev/faqs/ @zengyawen
zh-cn/application-dev/file-management/ @qinxiaowang
zh-cn/application-dev/application-test/ @HelloCrease
zh-cn/application-dev/reference/apis/js-apis-DataUriUtils.md @RayShih
zh-cn/application-dev/reference/apis/js-apis-ability-errorCode.md @RayShih
......@@ -225,7 +226,7 @@ zh-cn/application-dev/reference/apis/js-apis-application-shellCmdResult.md @RayS
zh-cn/application-dev/reference/apis/js-apis-commonEvent.md @RayShih
zh-cn/application-dev/reference/apis/js-apis-emitter.md @RayShih
zh-cn/application-dev/reference/apis/js-apis-notification.md @RayShih
zh-cn/application-dev/reference/apis/js-apis-reminderAgent.md @RayShih
zh-cn/application-dev/reference/apis/js-apis-reminderAgent.md @HelloCrease
zh-cn/application-dev/reference/apis/js-apis-eventhub.md @RayShih
zh-cn/application-dev/reference/apis/js-apis-Bundle.md @RayShih
zh-cn/application-dev/reference/apis/js-apis-deviceUsageStatistics.md @RayShih
......@@ -445,3 +446,5 @@ zh-cn/application-dev/reference/apis/js-apis-net-policy.md @zengyawen
zh-cn/application-dev/reference/apis/js-apis-net-sharing.md @zengyawen
zh-cn/application-dev/reference/apis/js-apis-net-statistics.md @zengyawen
zh-cn/application-dev/reference/apis/js-apis-tlsSocket.md @zengyawen
zh-cn/application-dev/reference/apis/js-apis-reminderAgentManager.md @HelloCrease
zh-cn/application-dev/reference/apis/js-apis-hiviewdfx-hiappevent.md @zengyawen
......@@ -17,11 +17,11 @@ You can `import` the native .so that contains the JS processing logic. For examp
### .so Naming Rules
Each module has a .so file. For example, if the module name is `hello`, name the .so file **libhello.so**. The `nm_modname` field in `napi_module` must be `hello`, which is the same as the module name. The sample code for importing the .so file is `import hello from 'libhello.so'`.
Each module has a .so file. For example, if the module name is `hello`, name the .so file `libhello.so`. The `nm_modname` field in `napi_module` must be `hello`, which is the same as the module name. The sample code for importing the .so file is `import hello from 'libhello.so'`.
### JS Objects and Threads
The Ark engine prevents NAPIs from being called to operate JS objects in non-JS threads. Otherwise, the application will crash.
The Ark engine prevents NAPIs from being called to operate JS objects in non-JS threads. Otherwise, the application will crash. Observe the following rules:
* The NAPIs can be used only in JS threads.
* **env** is bound to a thread and cannot be used across threads. The JS object created by a NAPI can be used only in the thread, in which the object is created, that is, the JS object is bound to the **env** of the thread.
......@@ -640,8 +640,3 @@ export default {
}
}
```
## Samples
The following samples are provided for native API development:
- [`NativeAPI`: NativeAPI (eTS) (API8)](https://gitee.com/openharmony/app_samples/tree/master/Native/NativeAPI)
- [First Native C++ Application (eTS) (API9)](https://gitee.com/openharmony/codelabs/tree/master/NativeAPI/NativeTemplateDemo)
- [Native Component (eTS) (API9) ](https://gitee.com/openharmony/codelabs/tree/master/NativeAPI/XComponent)
......@@ -5,6 +5,8 @@
设备使用信息统计,包括app usage/notification usage/system usage等使用统计。例如应用使用信息统计,用于保存和查询应用使用详情(app usage)、事件日志数据(event log)、应用分组(bundle group)情况。
部件缓存的应用记录(使用历史统计和使用事件记录)会在事件上报后30分钟内刷新到数据库持久化保存。
根据设备的使用信息统计接口,开发者可以开发出健康管理类应用来实现个人设备健康使用功能,并向用户展示其个人设备的使用记录。
## 接口说明
注册相关接口包导入:
```js
......@@ -44,7 +46,6 @@ import stats from '@ohos.bundleState';
```js
import stats from '@ohos.bundleState'
// 异步方法promise方式
stats.queryBundleActiveStates(0, 20000000000000).then(res => {
console.log('BUNDLE_ACTIVE queryBundleActiveStates promise success.');
for (let i = 0; i < res.length; i++) {
......@@ -54,19 +55,6 @@ import stats from '@ohos.bundleState';
}).catch(err => {
console.log('BUNDLE_ACTIVE queryBundleActiveStates promise failed, because: ' + err.code);
});
// 异步方法callback方式
stats.queryBundleActiveStates(0, 20000000000000, (err, res) => {
if (err) {
console.log('BUNDLE_ACTIVE queryBundleActiveStates callback failed, because: ' + err.code);
} else {
console.log('BUNDLE_ACTIVE queryBundleActiveStates callback success.');
for (let i = 0; i < res.length; i++) {
console.log('BUNDLE_ACTIVE queryBundleActiveStates callback number : ' + (i + 1));
console.log('BUNDLE_ACTIVE queryBundleActiveStates callback result ' + JSON.stringify(res[i]));
}
}
});
```
3. 通过指定起始和结束时间查询应用使用时长统计信息,config.json中需要配置权限:ohos.permission.BUNDLE_ACTIVE_INFO。
......@@ -74,7 +62,6 @@ import stats from '@ohos.bundleState';
```js
import stats from '@ohos.bundleState'
// 异步方法promise方式
stats.queryBundleStateInfos(0, 20000000000000).then(res => {
console.log('BUNDLE_ACTIVE queryBundleStateInfos promise success.');
let i = 1;
......@@ -86,21 +73,6 @@ import stats from '@ohos.bundleState';
}).catch(err => {
console.log('BUNDLE_ACTIVE queryBundleStateInfos promise failed, because: ' + err.code);
});
// 异步方法callback方式
stats.queryBundleStateInfos(0, 20000000000000, (err, res) => {
if (err) {
console.log('BUNDLE_ACTIVE queryBundleStateInfos callback failed, because: ' + err.code);
} else {
console.log('BUNDLE_ACTIVE queryBundleStateInfos callback success.');
let i = 1;
for(let key in res){
console.log('BUNDLE_ACTIVE queryBundleStateInfos callback number : ' + i);
console.log('BUNDLE_ACTIVE queryBundleStateInfos callback result ' + JSON.stringify(res[key]));
i++;
}
}
});
```
4. 通过指定起始和结束时间查询当前应用的事件集合,config.json中不需要配置权限。
......@@ -108,7 +80,6 @@ import stats from '@ohos.bundleState';
```js
import stats from '@ohos.bundleState'
// 异步方法promise方式
stats.queryCurrentBundleActiveStates(0, 20000000000000).then(res => {
console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates promise success.');
for (let i = 0; i < res.length; i++) {
......@@ -118,19 +89,6 @@ import stats from '@ohos.bundleState';
}).catch(err => {
console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates promise failed, because: ' + err.code);
});
// 异步方法callback方式
stats.queryCurrentBundleActiveStates(0, 20000000000000, (err, res) => {
if (err) {
console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates callback failed, because: ' + err.code);
} else {
console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates callback success.');
for (let i = 0; i < res.length; i++) {
console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates callback number : ' + (i + 1));
console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates callback result ' + JSON.stringify(res[i]));
}
}
});
```
5. 通过指定时间段间隔(天、周、月、年)查询应用使用时长统计信息,config.json中需要配置权限:ohos.permission.BUNDLE_ACTIVE_INFO。
......@@ -138,7 +96,6 @@ import stats from '@ohos.bundleState';
```js
import stats from '@ohos.bundleState'
// 异步方法promise方式
stats.queryBundleStateInfoByInterval(0, 0, 20000000000000).then(res => {
console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval promise success.');
for (let i = 0; i < res.length; i++) {
......@@ -149,18 +106,6 @@ import stats from '@ohos.bundleState';
console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval promise failed, because: ' + err.code);
});
// 异步方法callback方式
stats.queryBundleStateInfoByInterval(0, 0, 20000000000000, (err, res) => {
if (err) {
console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval callback failed, because: ' + err.code);
} else {
console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval callback success.');
for (let i = 0; i < res.length; i++) {
console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval callback number : ' + (i + 1));
console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval callback result ' + JSON.stringify(res[i]));
}
}
});
```
6. 查询(无参)当前调用者应用的使用优先级群组,config.json中不需要配置权限。
......@@ -168,43 +113,24 @@ import stats from '@ohos.bundleState';
```js
import stats from '@ohos.bundleState'
// promise方式
stats.queryAppUsagePriorityGroup().then(res => {
console.log('BUNDLE_ACTIVE queryAppUsagePriorityGroup promise succeeded. result: ' + JSON.stringify(res));
}).catch(err => {
console.log('BUNDLE_ACTIVE queryAppUsagePriorityGroup promise failed. because: ' + err.code);
});
// callback方式
stats.queryAppUsagePriorityGroup((err, res) => {
if (err) {
console.log('BUNDLE_ACTIVE queryAppUsagePriorityGroup callback failed. because: ' + err.code);
} else {
console.log('BUNDLE_ACTIVE queryAppUsagePriorityGroup callback succeeded. result: ' + JSON.stringify(res));
}
});
```
7. 判断指定Bundle Name的应用当前是否是空闲状态,config.json中不需要配置权限,三方应用只能查询自身的空闲状态。
7. 判断指定Bundle Name的应用当前是否是空闲状态,config.json中需要配置权限:ohos.permission.BUNDLE_ACTIVE_INFO,三方应用只能查询自身的空闲状态。
```js
import stats from '@ohos.bundleState'
// 异步方法promise方式
stats.isIdleState("com.ohos.camera").then(res => {
console.log('BUNDLE_ACTIVE isIdleState promise succeeded, result: ' + JSON.stringify(res));
}).catch(err => {
console.log('BUNDLE_ACTIVE isIdleState promise failed, because: ' + err.code);
});
// 异步方法callback方式
stats.isIdleState("com.ohos.camera", (err, res) => {
if (err) {
console.log('BUNDLE_ACTIVE isIdleState callback failed, because: ' + err.code);
} else {
console.log('BUNDLE_ACTIVE isIdleState callback succeeded, result: ' + JSON.stringify(res));
}
});
```
## 相关实例
针对设备使用信息统计,有以下相关实例可供参考:
......
......@@ -4,7 +4,7 @@
## 场景介绍
Host模式下,可以获取到已经连接的设备列表,并根据需要打开和关闭设备、控制设备权限、进行数据传输等。
Host模式下,可以获取到已经连接的USB设备列表,并根据需要打开和关闭设备、控制设备权限、进行数据传输等。
## 接口说明
......@@ -19,6 +19,7 @@ USB类开放能力如下,具体请查阅[API参考文档](../reference/apis/js
| ------------------------------------------------------------ | ------------------------------------------------------------ |
| hasRight(deviceName: string): boolean | 如果“使用者”(如各种App或系统)有权访问设备则返回true;无权访问设备则返回false。 |
| requestRight(deviceName: string): Promise&lt;boolean&gt; | 请求给定软件包的临时权限以访问设备。 |
| removeRight(deviceName: string): boolean | 移除软件包对设备的访问权限。|
| connectDevice(device: USBDevice): Readonly&lt;USBDevicePipe&gt; | 根据`getDevices()`返回的设备信息打开USB设备。 |
| getDevices(): Array&lt;Readonly&lt;USBDevice&gt;&gt; | 返回USB设备列表。 |
| setConfiguration(pipe: USBDevicePipe, config: USBConfig): number | 设置设备的配置。 |
......
# 开发参考
- [Syscap列表](syscap-list.md)
- [组件参考(基于eTS的声明式开发范式)](arkui-ts/Readme-CN.md)
- [组件参考(基于ArkTS的声明式开发范式)](arkui-ts/Readme-CN.md)
- [组件参考(兼容JS的类Web开发范式)](arkui-js/Readme-CN.md)
- [JS服务卡片UI组件参考](js-service-widget-ui/Readme-CN.md)
- [接口参考(JS及TS API)](apis/Readme-CN.md)
......
......@@ -87,8 +87,9 @@
- bundle/[ModuleInfo (ModuleInfo)](js-apis-bundle-ModuleInfo.md)
- bundle/[PermissionDef (PermissionDef)](js-apis-bundle-PermissionDef.md)
- bundle/[RemoteAbilityInfo (RemoteAbilityInfo)](js-apis-bundle-remoteAbilityInfo.md)
- bundle/[ShortcutInfo (ShortcutInfo)](js-apis-bundle-ShortcutInfo.md)
- bundle/[ShortcutInfo<sup>(deprecated)</sup> (ShortcutInfo)](js-apis-bundle-ShortcutInfo.md)
- bundle/[PackInfo (PackInfo)](js-apis-bundle-PackInfo.md)
- bundleManager/[ShortcutInfo (ShortcutInfo)](js-apis-bundleManager-shortcutInfo.md)
- UI界面
- [@ohos.animator (动画)](js-apis-animator.md)
- [@ohos.curves (插值计算)](js-apis-curve.md)
......
# 手势路径
GesturePath表示手势路径信息。
本模块用于创建辅助功能注入手势所需的手势路径信息。
>![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
>
>本模块首批接口从API version 9开始支持,后续版本的新增接口,采用上角标单独标记接口的起始版本。
## 导入模块
```ts
import GesturePath from "@ohos.accessibility.GesturePath";
```
## GesturePath
表示手势路径信息。
**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
### 属性
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| ------------ | ---------------------------------------- | ---- | ---- | ------ |
| points | Array&lt;[GesturePoint](js-apis-accessibility-GesturePoint.md#gesturepoint)&gt; | 是 | 是 | 手势触摸点。 |
| durationTime | number | 是 | 是 | 手势总耗时, 单位为毫秒。 |
### constructor
constructor(durationTime: number);
构造函数。
**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
**参数:**
| 参数名 | 参数类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| durationTime | number | 是 | 手势总耗时,单位为毫秒。 |
**示例:**
```typescript
let durationTime = 20;
let gesturePath = new GesturePath(durationTime);
```
# 手势触摸点
GesturePoint表示手势触摸点。
本模块用于创建辅助功能注入手势所需的手势路径的触摸点信息。
>![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
>
>本模块首批接口从API version 9开始支持,后续版本的新增接口,采用上角标单独标记接口的起始版本。
## 导入模块
```ts
import GesturePoint from "@ohos.accessibility.GesturePoint";
```
## GesturePoint
表示手势触摸点。
**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
### 属性
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| --------- | ------ | ---- | ---- | ------- |
| positionX | number | 是 | 是 | 触摸点X坐标。 |
| positionY | number | 是 | 是 | 触摸点Y坐标。 |
### constructor
constructor(positionX: number, positionY: number);
构造函数。
**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
**参数:**
| 参数名 | 参数类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| positionX | number | 是 | 触摸点X坐标。 |
| positionY | number | 是 | 触摸点Y坐标。 |
**示例:**
```typescript
let positionX = 1;
let positionY = 2;
let gesturePoint = new GesturePoint(positionX, positionY);
```
......@@ -2,7 +2,7 @@
**AccessibilityExtensionAbility**基于ExtensionAbility框架,提供辅助功能业务的能力。
>**说明:**
>![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
>
>本模块首批接口从API version 9开始支持,后续版本的新增接口,采用上角标单独标记接口的起始版本。
>
......@@ -32,36 +32,10 @@ import AccessibilityExtensionAbility from '@ohos.application.AccessibilityExtens
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| --------- | ---------------------------------------- | ---- | ---- | ---------- |
| eventType | [EventType](js-apis-accessibility.md#EventType) \| [WindowUpdateType](js-apis-accessibility.md#WindowUpdateType) \| [TouchGuideType](touchguidetype) \| [GestureType](gesturetype) \| [PageUpdateType](pageupdatetype) | 是 | 否 | 具体事件类型。 |
| eventType | [EventType](js-apis-accessibility.md#EventType) \| [WindowUpdateType](js-apis-accessibility.md#WindowUpdateType) \| [TouchGuideType](#touchguidetype) \| [GestureType](#gesturetype) \| [PageUpdateType](#pageupdatetype) | 是 | 否 | 具体事件类型。 |
| target | AccessibilityElement | 是 | 否 | 发生事件的目标组件。 |
| timeStamp | number | 是 | 否 | 事件时间戳。 |
## GesturePath
表示手势路径信息。
**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
### 属性
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| ------------ | ---------------------------------------- | ---- | ---- | ------ |
| points | Array&lt;[GesturePoint](gesturepoint)&gt; | 是 | 是 | 手势。 |
| durationTime | number | 是 | 是 | 手势总耗时。 |
## GesturePoint
表示手势触摸点。
**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
### 属性
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| --------- | ------ | ---- | ---- | ------- |
| positionX | number | 是 | 是 | 触摸点X坐标。 |
| positionY | number | 是 | 是 | 触摸点Y坐标。 |
## GestureType
手势事件类型。
......@@ -117,16 +91,12 @@ onConnect(): void;
**系统能力:** SystemCapability.BarrierFree.Accessibility.Core
**参数:**
**示例:**
```ts
onConnect(): void {
console.log("AxExtensionAbility onConnect");
}
};
```
## AccessibilityExtensionAbility.onDisconnect
......@@ -137,16 +107,12 @@ onDisconnect(): void;
**系统能力:** SystemCapability.BarrierFree.Accessibility.Core
**参数:**
**示例:**
```ts
onDisconnect(): void {
console.log("AxExtensionAbility onDisconnect");
}
};
```
## AccessibilityExtensionAbility.onAccessibilityEvent
......@@ -171,7 +137,7 @@ onAccessibilityEvent(event: AccessibilityEvent): void {
if (event.eventType == 'click') {
console.log("AxExtensionAbility onAccessibilityEvent: click");
}
}
};
```
## AccessibilityExtensionAbility.onKeyEvent
......@@ -198,5 +164,5 @@ onKeyEvent(keyEvent: inputEventClient.KeyEvent): boolean {
return true;
}
return false;
}
};
```
# ShortcutInfo
# ShortcutInfo<sup>(deprecated)<sup>
> 从API version 9开始不再维护,建议使用[ShortcutInfo](js-apis-bundleManager-shortcutInfo.md)替代
> **说明:**
>
......@@ -12,9 +12,9 @@
## ShortcutWant
## ShortcutWant<sup>(deprecated)<sup>
快捷方式所指向的目标信息。
> 从API version 9开始不再维护,建议使用[ShortcutWant](js-apis-bundleManager-shortcutInfo.md)替代
**系统能力:** 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework
......@@ -26,9 +26,10 @@
| targetModule<sup>9+</sup> | string | 是 | 否 | 快捷方式的目标模块 |
| targetClass | string | 是 | 否 | 快捷方式所需的目标类 |
## ShortcutInfo
## ShortcutInfo<sup>(deprecated)<sup>
> 从API version 9开始不再维护,建议使用[ShortcutInfo](js-apis-bundleManager-shortcutInfo.md)替代。
快捷方式属性信息。
**系统能力:** 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework
......
# ShortcutInfo
应用配置文件中定义的快捷方式信息,FA模型配置在[config.json](../../quick-start/package-structure.md)文件中进行配置,Stage模型配置参考[shortcuts对象内部结构](../../quick-start/stage-structure.md#shortcuts对象内部结构)
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API version 9 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
本模块接口为系统接口。
## ShortcutWant
**系统能力:** SystemCapability.BundleManager.BundleFramework.Launcher
**系统接口:** 此接口为系统接口。
| 名称 | 类型 | 可读 | 可写 | 说明 |
| ------------------------- | ------ | ---- | ---- | -------------------- |
| targetBundle | string | 是 | 否 | 快捷方式的目标bundleName |
| targetModule | string | 是 | 否 | 快捷方式的目标moduleName |
| targetAbility | string | 是 | 否 | 快捷方式所需的目标abilityName |
## ShortcutInfo
**系统能力:** SystemCapability.BundleManager.BundleFramework.Launcher
**系统接口:** 此接口为系统接口。
| 名称 | 类型 | 可读 | 可写 | 说明 |
| ----------------------- | ------------------------------------------ | ---- | ---- | ---------------------------- |
| id | string | 是 | 否 | 快捷方式所属应用程序的Id |
| bundleName | string | 是 | 否 | 包含快捷方式的包名称 |
| moduleName | string | 是 | 否 | 快捷方式的模块名 |
| hostAbility | string | 是 | 否 | 快捷方式的本地Ability名称 |
| icon | string | 是 | 否 | 快捷方式的图标 |
| iconId | number | 是 | 否 | 快捷方式的图标Id |
| label | string | 是 | 否 | 快捷方式的标签 |
| labelId | number | 是 | 否 | 快捷方式的标签Id |
| wants | Array\<[ShortcutWant](#shortcutwant)> | 是 | 否 | 快捷方式所需要的信息 |
......@@ -7,7 +7,7 @@
## 导入模块
```js
import account_distributedAccount from '@ohos.account.distributedAccount';
```
......@@ -40,7 +40,7 @@ getDistributedAccountAbility(): DistributedAccountAbility
getOsAccountDistributedInfo(callback: AsyncCallback&lt;DistributedInfo&gt;): void
获取分布式帐号信息,使用callback回调异步返回结果
获取分布式帐号信息,使用callback异步回调
**系统能力:** SystemCapability.Account.OsAccount
......@@ -50,7 +50,15 @@ getOsAccountDistributedInfo(callback: AsyncCallback&lt;DistributedInfo&gt;): voi
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| callback | AsyncCallback&lt;[DistributedInfo](#distributedinfo)&gt; | 是 | 获取分布式帐号信息的回调。 |
| callback | AsyncCallback&lt;[DistributedInfo](#distributedinfo)&gt; | 是 | 回调参数。当获取分布式帐号信息成功,err为undefined,data为获取到的分布式帐号信息对象;否则为错误对象。 |
**错误码:**
| 错误码ID | 错误信息|
| ------- | -------|
| 201 | permission denied. |
| 401 | the parameter check failed. |
| 12300001 | system service exception. |
**示例:**
```js
......@@ -70,7 +78,7 @@ getOsAccountDistributedInfo(callback: AsyncCallback&lt;DistributedInfo&gt;): voi
getOsAccountDistributedInfo(): Promise&lt;DistributedInfo&gt;
获取分布式帐号信息,使用Promise方式异步返回结果
获取分布式帐号信息。使用Promise异步回调
**系统能力:** SystemCapability.Account.OsAccount
......@@ -80,7 +88,15 @@ getOsAccountDistributedInfo(): Promise&lt;DistributedInfo&gt;
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;[DistributedInfo](#distributedinfo)&gt; | Promise实例,用于获取异步返回结果。 |
| Promise&lt;[DistributedInfo](#distributedinfo)&gt; | Promise对象。返回分布式帐号信息对象。 |
**错误码:**
| 错误码ID | 错误信息|
| ------- | -------|
| 201 | permission denied. |
| 401 | the parameter check failed. |
| 12300001 | system service exception. |
**示例:**
```js
......@@ -100,7 +116,7 @@ getOsAccountDistributedInfo(): Promise&lt;DistributedInfo&gt;
queryOsAccountDistributedInfo(callback: AsyncCallback&lt;DistributedInfo&gt;): void
获取分布式帐号信息,使用callback回调异步返回结果
获取分布式帐号信息。使用callback异步回调
> **说明:** 从API version 9开始废弃,建议使用[getOsAccountDistributedInfo](#getosaccountdistributedinfo9)
>
> 从 API version 7开始支持。
......@@ -113,7 +129,7 @@ queryOsAccountDistributedInfo(callback: AsyncCallback&lt;DistributedInfo&gt;): v
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| callback | AsyncCallback&lt;[DistributedInfo](#distributedinfo)&gt; | 是 | 获取分布式帐号信息的回调。 |
| callback | AsyncCallback&lt;[DistributedInfo](#distributedinfo)&gt; | 是 | 回调函数。当获取分布式帐号信息成功,err为undefined,data为获取到的分布式帐号信息对象;否则为错误对象。 |
**示例:**
```js
......@@ -129,7 +145,7 @@ queryOsAccountDistributedInfo(callback: AsyncCallback&lt;DistributedInfo&gt;): v
queryOsAccountDistributedInfo(): Promise&lt;DistributedInfo&gt;
获取分布式帐号信息,使用Promise方式异步返回结果
获取分布式帐号信息。使用Promise异步回调
> **说明:** 从API version 9开始废弃,建议使用[getOsAccountDistributedInfo](#getosaccountdistributedinfo9-1)
>
> 从 API version 7开始支持。
......@@ -142,7 +158,7 @@ queryOsAccountDistributedInfo(): Promise&lt;DistributedInfo&gt;
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;[DistributedInfo](#distributedinfo)&gt; | Promise实例,用于获取异步返回结果。 |
| Promise&lt;[DistributedInfo](#distributedinfo)&gt; | Promise对象。返回分布式帐号信息对象。 |
**示例:**
```js
......@@ -159,7 +175,7 @@ queryOsAccountDistributedInfo(): Promise&lt;DistributedInfo&gt;
setOsAccountDistributedInfo(accountInfo: DistributedInfo, callback: AsyncCallback&lt;void&gt;): void
更新分布式帐号信息,使用callback回调异步返回结果
更新分布式帐号信息。使用callback异步回调
**系统能力:** SystemCapability.Account.OsAccount
......@@ -170,7 +186,16 @@ setOsAccountDistributedInfo(accountInfo: DistributedInfo, callback: AsyncCallbac
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| accountInfo | [DistributedInfo](#distributedinfo) | 是 | 分布式帐号信息。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 更新分布式帐号信息的回调。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当更新分布式帐号信息成功时,err为undefined,否则为错误对象。 |
**错误码:**
| 错误码ID | 错误信息|
| ------- | -------|
| 201 | permission denied. |
| 401 | the parameter check failed. |
| 12300001 | system service exception. |
| 12300002 | invalid accountInfo. |
**示例:**
```js
......@@ -189,7 +214,7 @@ setOsAccountDistributedInfo(accountInfo: DistributedInfo, callback: AsyncCallbac
setOsAccountDistributedInfo(accountInfo: DistributedInfo): Promise&lt;void&gt;
更新分布式帐号信息,使用Promise方式异步返回结果
更新分布式帐号信息。使用Promise异步回调
**系统能力:** SystemCapability.Account.OsAccount
......@@ -205,7 +230,16 @@ setOsAccountDistributedInfo(accountInfo: DistributedInfo): Promise&lt;void&gt;
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;void&gt; | Promise实例,用于获取异步返回结果。 |
| Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。 |
**错误码:**
| 错误码ID | 错误信息|
| ------- | -------|
| 201 | permission denied. |
| 401 | the parameter check failed. |
| 12300001 | system service exception. |
| 12300002 | invalid accountInfo. |
**示例:**
```js
......@@ -225,7 +259,7 @@ setOsAccountDistributedInfo(accountInfo: DistributedInfo): Promise&lt;void&gt;
updateOsAccountDistributedInfo(accountInfo: DistributedInfo, callback: AsyncCallback&lt;void&gt;): void
更新分布式帐号信息,使用callback回调异步返回结果
更新分布式帐号信息。使用callback异步回调
> **说明:** 从API version 9开始废弃,建议使用[setOsAccountDistributedInfo](#setosaccountdistributedinfo9)
>
> 从 API version 7开始支持。
......@@ -239,7 +273,7 @@ updateOsAccountDistributedInfo(accountInfo: DistributedInfo, callback: AsyncCall
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| accountInfo | [DistributedInfo](#distributedinfo) | 是 | 分布式帐号信息。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 更新分布式帐号信息的回调。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当更新分布式帐号信息成功时,err为undefined,否则为错误对象。 |
**示例:**
```js
......@@ -254,7 +288,7 @@ updateOsAccountDistributedInfo(accountInfo: DistributedInfo, callback: AsyncCall
updateOsAccountDistributedInfo(accountInfo: DistributedInfo): Promise&lt;void&gt;
更新分布式帐号信息,使用Promise方式异步返回结果
更新分布式帐号信息。使用Promise异步回调
> **说明:** 从API version 9开始废弃,建议使用[setOsAccountDistributedInfo](#setosaccountdistributedinfo9-1)
>
> 从 API version 7开始支持。
......@@ -272,7 +306,7 @@ updateOsAccountDistributedInfo(accountInfo: DistributedInfo): Promise&lt;void&gt
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;void&gt; | Promise实例,用于获取异步返回结果。 |
| Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。 |
**示例:**
```js
......
......@@ -48,7 +48,7 @@ registerMissionListener(parameter: MissionDeviceInfo, options: MissionCallback,
console.log('NotifyNetDisconnect state ' + JSON.stringify(state));
}
var parameter = {
deviceId: remoteDeviceId
deviceId: ""
};
var options = {
notifyMissionsChanged: NotifyMissionsChanged,
......@@ -104,7 +104,7 @@ registerMissionListener(parameter: MissionDeviceInfo, options: MissionCallback):
console.log('NotifyNetDisconnect state ' + JSON.stringify(state));
}
var parameter = {
deviceId: remoteDeviceId
deviceId: ""
};
var options = {
notifyMissionsChanged: NotifyMissionsChanged,
......@@ -145,7 +145,7 @@ unRegisterMissionListener(parameter: MissionDeviceInfo, callback: AsyncCallback&
```ts
var parameter = {
deviceId: remoteDeviceId
deviceId: ""
};
try {
distributedMissionManager.unRegisterMissionListener(parameter, (error) => {
......@@ -186,7 +186,7 @@ unRegisterMissionListener(parameter: MissionDeviceInfo): Promise&lt;void&gt;
```ts
var parameter = {
deviceId: remoteDeviceId
deviceId: ""
};
try {
distributedMissionManager.unRegisterMissionListener(parameter)
......@@ -221,7 +221,7 @@ startSyncRemoteMissions(parameter: MissionParameter, callback: AsyncCallback&lt;
```ts
var parameter = {
deviceId: remoteDeviceId,
deviceId: "",
fixConflict: false,
tag: 0
};
......@@ -263,7 +263,7 @@ startSyncRemoteMissions(parameter: MissionParameter): Promise&lt;void&gt;
```ts
var parameter = {
deviceId: remoteDeviceId,
deviceId: "",
fixConflict: false,
tag: 0
};
......@@ -300,7 +300,7 @@ stopSyncRemoteMissions(parameter: MissionDeviceInfo, callback: AsyncCallback&lt;
```ts
var parameter = {
deviceId: remoteDeviceId
deviceId: ""
};
try {
distributedMissionManager.stopSyncRemoteMissions(parameter, (error) => {
......@@ -340,7 +340,7 @@ stopSyncRemoteMissions(parameter: MissionDeviceInfo): Promise&lt;void&gt;
```ts
var parameter = {
deviceId: remoteDeviceId
deviceId: ""
};
try {
distributedMissionManager.stopSyncRemoteMissions(parameter)
......@@ -376,10 +376,10 @@ continueMission(parameter: ContinueDeviceInfo, options: ContinueCallback, callba
```ts
var parameter = {
srcDeviceId: localDeviceId,
dstDeviceId: remoteDeviceId,
missionId: remoteMissionId,
wantParams: {"key": "value"}
srcDeviceId: "",
dstDeviceId: "",
missionId: 1,
wantParam: {"key": "value"}
};
function OnContinueDone(resultCode) {
console.log('OnContinueDone resultCode: ' + JSON.stringify(resultCode));
......@@ -426,10 +426,10 @@ continueMission(parameter: ContinueDeviceInfo, options: ContinueCallback): Promi
```ts
var parameter = {
srcDeviceId: localDeviceId,
dstDeviceId: remoteDeviceId,
missionId: remoteMissionId,
wantParams: {"key": "value"}
srcDeviceId: "",
dstDeviceId: "",
missionId: 1,
wantParam: {"key": "value"}
};
function OnContinueDone(resultCode) {
console.log('OnContinueDone resultCode: ' + JSON.stringify(resultCode));
......@@ -501,8 +501,8 @@ continueMission(parameter: ContinueDeviceInfo, options: ContinueCallback): Promi
| -------- | ------ | ---- | ---- | ------- |
| srcDeviceId | string | 是 | 是 | 表示任务迁移源设备ID。 |
| dstDeviceId | string | 是 | 是 | 表示任务迁移目标设备ID。 |
| missionId | string | 是 | 是 | 表示任务ID。 |
| wantParams | {[key: string]: any} | 是 | 是 | 表示扩展参数。 |
| missionId | number | 是 | 是 | 表示任务ID。 |
| wantParam | {[key: string]: any} | 是 | 是 | 表示扩展参数。 |
## ContinueCallback
......
......@@ -3,7 +3,7 @@
本模块提供了应用事件打点能力,包括对打点数据的落盘,以及对打点功能的管理配置。
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> - 本模块接口从API version 9开始废弃,建议使用新接口[@ohos.hiviewdfx.hiAppEvent](js-apis-hiviewdfx-hiappevent)替代。
> - 本模块接口从API version 9开始废弃,建议使用新接口[@ohos.hiviewdfx.hiAppEvent](js-apis-hiviewdfx-hiappevent.md)替代。
> - 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
......
......@@ -26,11 +26,103 @@ import hichecker from '@ohos.hichecker';
| RULE_THREAD_CHECK_SLOW_PROCESS | bigint | 检测规则,检测是否有耗时函数被调用。 |
| RULE_CHECK_ABILITY_CONNECTION_LEAK | bigint | 检测规则,检测是否发生ability泄露。 |
## hichecker.addCheckRule<sup>9+</sup>
## hichecker.addRule
addCheckRule(rule: bigint): void
添加一条或多条规则到系统,系统根据添加的规则进行检测或反馈。
**系统能力:** SystemCapability.HiviewDFX.HiChecker
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ---------------- |
| rule | bigint | 是 | 需要添加的规则。 |
**示例:**
```js
try {
// 添加一条规则
hichecker.addCheckRule(hichecker.RULE_CAUTION_PRINT_LOG);}
// 添加多条规则
hichecker.addCheckRule(
hichecker.RULE_CAUTION_PRINT_LOG | hichecker.RULE_CAUTION_TRIGGER_CRASH);
catch (err) {
console.error(`code: ${err.code}, message: ${err.message}`);
}
```
## hichecker.removeCheckRule<sup>9+</sup>
removeCheckRule(rule: bigint): void
删除一条或多条规则,删除的规则后续将不再生效。
**系统能力:** SystemCapability.HiviewDFX.HiChecker
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ---------------- |
| rule | bigint | 是 | 需要删除的规则。 |
**示例:**
```js
try {
// 删除一条规则
hichecker.removeCheckRule(hichecker.RULE_CAUTION_PRINT_LOG);
// 删除多条规则
hichecker.removeCheckRule(
hichecker.RULE_CAUTION_PRINT_LOG | hichecker.RULE_CAUTION_TRIGGER_CRASH);
catch (err) {
console.error(`code: ${err.code}, message: ${err.message}`);
}
```
## hichecker.containsCheckRule<sup>9+</sup>
containsCheckRule(rule: bigint): boolean
当前已添加的规则集中是否包含了某一个特定的规则,如果传入的规则级别为线程级别,则仅在当前线程中进行查询。
**系统能力:** SystemCapability.HiviewDFX.HiChecker
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ---------------- |
| rule | bigint | 是 | 需要查询的规则。 |
**返回值:**
| 类型 | 说明 |
| ------- | ---------------------------------------------------------- |
| boolean | 查询结果,true&nbsp;表示规则已添加,false 表示规则未添加。 |
**示例:**
```js
try {
// 添加一条规则
hichecker.addCheckRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS);
// 查询是否包含
hichecker.containsCheckRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS); // return true;
hichecker.containsCheckRule(hichecker.RULE_CAUTION_PRINT_LOG); // return false;
catch (err) {
console.error(`code: ${err.code}, message: ${err.message}`);
}
```
## hichecker.addRule<sup>(deprecated)</sup>
addRule(rule: bigint): void
> **说明:** 从 API Version 9 开始废弃,建议使用[hichecker.addCheckRule](#hicheckeraddcheckrule9)替代。
添加一条或多条规则到系统,系统根据添加的规则进行检测或反馈。
**系统能力:** SystemCapability.HiviewDFX.HiChecker
......@@ -52,10 +144,12 @@ hichecker.addRule(
hichecker.RULE_CAUTION_PRINT_LOG | hichecker.RULE_CAUTION_TRIGGER_CRASH);
```
## hichecker.removeRule
## hichecker.removeRule<sup>(deprecated)</sup>
removeRule(rule: bigint): void
> **说明:** 从 API Version 9 开始废弃,建议使用[hichecker.removeCheckRule](#hicheckerremovecheckrule9)替代。
删除一条或多条规则,删除的规则后续将不再生效。
**系统能力:** SystemCapability.HiviewDFX.HiChecker
......@@ -101,10 +195,12 @@ hichecker.addRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS);
hichecker.getRule(); // return 1n;
```
## hichecker.contains
## hichecker.contains<sup>(deprecated)</sup>
contains(rule: bigint): boolean
> **说明:** 从 API Version 9 开始废弃,建议使用[hichecker.containsCheckRule](#hicheckercontainscheckrule9)替代。
当前已添加的规则集中是否包含了某一个特定的规则,如果传入的规则级别为线程级别,则仅在当前线程中进行查询。
**系统能力:** SystemCapability.HiviewDFX.HiChecker
......
......@@ -162,10 +162,12 @@ getCpuUsage(): number
let cpuUsage = hidebug.getCpuUsage();
```
## hidebug.startProfiling
## hidebug.startProfiling<sup>(deprecated)</sup>
startProfiling(filename : string) : void
> **说明:** 从 API Version 9 开始废弃,建议使用[hidebug.startJsCpuProfiling](#hidebugstartjscpuprofiling9)替代。
启动虚拟机Profiling方法跟踪,`startProfiling()`方法的调用需要与`stopProfiling()`方法的调用一一对应,先开启后关闭,严禁使用`start->start->stop``start->stop->stop``start->start->stop->stop`等类似的顺序调用。
**系统能力:** SystemCapability.HiviewDFX.HiProfiler.HiDebug
......@@ -188,10 +190,12 @@ hidebug.stopProfiling();
## hidebug.stopProfiling
## hidebug.stopProfiling<sup>(deprecated)</sup>
stopProfiling() : void
> **说明:** 从 API Version 9 开始废弃,建议使用[hidebug.stopJsCpuProfiling](#hidebugstopjscpuprofiling9)替代。
停止虚拟机Profiling方法跟踪,`stopProfiling()`方法的调用需要与`startProfiling()`方法的调用一一对应,先开启后关闭,严禁使用`start->start->stop``start->stop->stop``start->start->stop->stop`等类似的顺序调用。
**系统能力:** SystemCapability.HiviewDFX.HiProfiler.HiDebug
......@@ -206,10 +210,12 @@ hidebug.startProfiling("cpuprofiler-20220216");
hidebug.stopProfiling();
```
## hidebug.dumpHeapData
## hidebug.dumpHeapData<sup>(deprecated)</sup>
dumpHeapData(filename : string) : void
> **说明:** 从 API Version 9 开始废弃,建议使用[hidebug.dumpJsHeapData](#hidebugdumpjsheapdata9)替代。
虚拟机堆导出。
**系统能力:** SystemCapability.HiviewDFX.HiProfiler.HiDebug
......@@ -228,11 +234,11 @@ hidebug.dumpHeapData("heap-20220216");
## hidebug.getServiceDump<sup>9+<sup>
getServiceDump(serviceid : number) : string
getServiceDump(serviceid : number, fd : number, args : Array<string>) : void
获取系统服务信息。
此接口为系统接口,三方应用不可用。
**需要权限**: ohos.permission.DUMP
**系统能力:** SystemCapability.HiviewDFX.HiProfiler.HiDebug
......@@ -241,16 +247,115 @@ getServiceDump(serviceid : number) : string
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| serviceid | number | 是 | 基于该用户输入的service id获取系统服务信息。|
| fd | number | 是 | 文件描述符,该接口会往该fd中写入数据。|
| args | Array<string> | 是 | 系统服务的Dump接口所对应的参数列表。|
**返回值:**
| 类型 | 说明 |
| ------ | -------------------------- |
| string | 返回dump的service信息文件的绝对路径。 |
**示例:**
```js
import fileio from '@ohos.fileio'
import hidebug from '@ohos.hidebug'
import featureAbility from '@ohos.ability.featureAbility'
let context = featureAbility.getContext();
context.getFilesDir().then((data) => {
var path = data + "/serviceInfo.txt"
console.info("output path: " + path)
let fd = fileio.openSync(path, 0o102, 0o666)
var serviceId = 10
var args = new Array("allInfo")
try {
hidebug.getServiceDump(serviceId, fd, args)
} catch (error) {
console.info(error.code)
console.info(error.message)
}
fileio.closeSync(fd);
})
```
## hidebug.startJsCpuProfiling<sup>9+</sup>
startJsCpuProfiling(filename : string) : void
启动虚拟机Profiling方法跟踪,`startJsCpuProfiling()`方法的调用需要与`stopJsCpuProfiling()`方法的调用一一对应,先开启后关闭,严禁使用`start->start->stop``start->stop->stop``start->start->stop->stop`等类似的顺序调用。
**系统能力:** SystemCapability.HiviewDFX.HiProfiler.HiDebug
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| filename | string | 是 | 用户自定义的profiling文件名,根据传入的`filename`,将在应用的`files`目录生成`filename.json`文件。 |
**示例:**
```js
import hidebug from '@ohos.hidebug'
try {
hidebug.startJsCpuProfiling("cpu_profiling");
...
hidebug.stopJsCpuProfiling();
} catch (error) {
console.info(error.code)
console.info(error.message)
}
```
## hidebug.stopJsCpuProfiling<sup>9+</sup>
stopJsCpuProfiling() : void
停止虚拟机Profiling方法跟踪,`startJsCpuProfiling()`方法的调用需要与`stopJsCpuProfiling()`方法的调用一一对应,先开启后关闭,严禁使用`start->start->stop``start->stop->stop``start->start->stop->stop`等类似的顺序调用。
**系统能力:** SystemCapability.HiviewDFX.HiProfiler.HiDebug
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| filename | string | 是 | 用户自定义的profiling文件名,根据传入的`filename`,将在应用的`files`目录生成`filename.json`文件。 |
**示例:**
```js
import hidebug from '@ohos.hidebug'
try {
hidebug.startJsCpuProfiling("cpu_profiling");
...
hidebug.stopJsCpuProfiling();
} catch (error) {
console.info(error.code)
console.info(error.message)
}
```
## hidebug.dumpJsHeapData<sup>9+</sup>
dumpJsHeapData(filename : string) : void
虚拟机堆导出。
**系统能力:** SystemCapability.HiviewDFX.HiProfiler.HiDebug
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| filename | string | 是 | 用户自定义的虚拟机堆文件名,根据传入的`filename`,将在应用的`files`目录生成`filename.heapsnapshot`文件。 |
**示例:**
```js
let serviceId = 10;
let pathName = hidebug.getServiceDump(serviceId);
import hidebug from '@ohos.hidebug'
try {
hidebug.dumpJsHeapData("heapData");
} catch (error) {
console.info(error.code)
console.info(error.message)
}
```
\ No newline at end of file
......@@ -55,6 +55,21 @@ write(info: SysEventInfo, callback: AsyncCallback&lt;void&gt;): void
| info | [SysEventInfo](#syseventinfo) | 是 | 系统事件。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数,可以在回调函数中处理接口返回值。<br/>- 0表示事件校验成功,事件正常异步写入事件文件;<br/>- 正值表示事件打点存在异常,但可以正常写入;<br/>- 负值表示事件打点失败。 |
**错误码:**
以下错误码的详细介绍请参见[系统事件错误码](../errorcodes/errorcode-hisysevent.md)
| 错误码ID | 错误信息 |
| ------- | ----------------------------------------------------------------- |
| 11200001 | Invalid event domain. |
| 11200002 | Invalid event name. |
| 11200003 | Abnormal environment. |
| 11200004 | Length of the event is over limit. |
| 11200051 | Invalid event parameter. |
| 11200052 | Size of the event parameter of the string type is over limit. |
| 11200053 | Count of event parameters is over limit. |
| 11200054 | Count of event parameter of the array type is over limit. |
**示例:**
```js
......@@ -101,6 +116,21 @@ write(info: SysEventInfo): Promise&lt;void&gt;
| ------------------- | ------------------------------------------------------------ |
| Promise&lt;void&gt; | Promise实例,可以在其then()、catch()方法中分别对系统事件写入成功、写入异常的回调进行处理。 |
**错误码:**
以下错误码的详细介绍请参见[系统事件错误码](../errorcodes/errorcode-hisysevent.md)
| 错误码ID | 错误信息 |
| -------- | ---------------------------------------------------------------- |
| 11200001 | Invalid event domain. |
| 11200002 | Invalid event name. |
| 11200003 | Abnormal environment. |
| 11200004 | Length of the event is over limit. |
| 11200051 | Invalid event parameter. |
| 11200052 | Size of the event parameter of the string type is over limit. |
| 11200053 | Count of event parameters is over limit. |
| 11200054 | Count of event parameter of the array type is over limit. |
**示例:**
```js
......@@ -171,7 +201,7 @@ try {
## hiSysEvent.addWatcher
addWatcher(watcher: Watcher): number
addWatcher(watcher: Watcher): void
订阅系统事件,接收[Watcher](#watcher)类型的对象作为事件参数。
......@@ -185,6 +215,15 @@ addWatcher(watcher: Watcher): number
| ------ | ----------------------------- | ---- | ------------------------ |
| watcher | [Watcher](#watcher) | 是 | 系统事件订阅者对象。 |
**错误码:**
以下错误码的详细介绍请参见[系统事件错误码](../errorcodes/errorcode-hisysevent.md)
| 错误码ID | 错误信息 |
| -------- | ----------------------------------- |
| 11200101 | Count of watchers is over limit. |
| 11200102 | Count of watch rules is over limit. |
**示例:**
```js
......@@ -213,7 +252,7 @@ try {
## hiSysEvent.removeWatcher
removeWatcher(watcher: Watcher): number
removeWatcher(watcher: Watcher): void
取消订阅系统事件,接收[Watcher](#watcher)类型的对象作为事件参数。
......@@ -224,9 +263,17 @@ removeWatcher(watcher: Watcher): number
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------------- | ---- | ------------------------ |
| ------ | ------------- | ---- | ------------------------- |
| watcher | [Watcher](#watcher) | 是 | 系统事件订阅者对象。 |
**错误码:**
以下错误码的详细介绍请参见[系统事件错误码](../errorcodes/errorcode-hisysevent.md)
| 错误码ID | 错误信息 |
| -------- | --------------------------- |
| 11200201 | The watcher does not exist. |
**示例:**
```js
......@@ -247,7 +294,7 @@ let watcher = {
}
}
try {
let ret = hiSysEvent.addWatcher(watcher)
hiSysEvent.addWatcher(watcher)
hiSysEvent.removeWatcher(watcher)
} catch (error) {
console.error(`error code: ${error.code}, error msg: ${error.message}`);
......@@ -290,7 +337,7 @@ try {
## hiSysEvent.query
query(queryArg: QueryArg, rules: QueryRule[], querier: Querier): number
query(queryArg: QueryArg, rules: QueryRule[], querier: Querier): void
查询系统事件。
......@@ -306,6 +353,17 @@ query(queryArg: QueryArg, rules: QueryRule[], querier: Querier): number
| rules | [QueryRule](#queryrule)[] | 是 | 查询规则数组,每次查询可配置多个查询规则。 |
| querier | [Querier](#querier) | 是 | 查询者对象,包含查询结果及结束的相关回调。 |
**错误码:**
以下错误码的详细介绍请参见[系统事件错误码](../errorcodes/errorcode-hisysevent.md)
| 错误码ID | 错误信息 |
| -------- | ------------------------------------------- |
| 11200301 | Count of query rules is over limit. |
| 11200302 | Invalid query rule. |
| 11200303 | Count of concurrent queriers is over limit. |
| 11200304 | Query frequency is over limit. |
**示例:**
```js
......
......@@ -12,22 +12,6 @@
import hiAppEvent from '@ohos.hiviewdfx.hiAppEvent';
```
## 使用说明
开发者在使用应用事件打点功能前,需要首先了解应用事件相关的使用规格。
**事件打点回调**
开发者在调用事件打点方法时,可以在回调函数中对打点结果进行处理,当前支持callback形式和Promise形式的回调。
**事件订阅回调**
开发者在调用事件订阅方法时,可以在订阅回调函数中对订阅数据进行处理,其入参定义如下:
- curRow:返回的订阅事件数量;
- curSize:返回的订阅事件数据大小,单位为byte;
- holder:返回的订阅事件数据持有者,可以通过其对订阅事件进行处理。
## hiAppEvent.write
write(info: [AppEventInfo](#appeventinfo), callback: AsyncCallback&lt;void&gt;): void
......@@ -41,7 +25,7 @@ write(info: [AppEventInfo](#appeventinfo), callback: AsyncCallback&lt;void&gt;):
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------ | ---- | -------------- |
| info | [AppEventInfo](#appeventinfo) | 是 | 应用事件对象。 |
| callback | AsyncCallback&lt;void&gt; | 否 | 事件回调函数。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 打点回调函数。 |
**错误码:**
......@@ -93,9 +77,9 @@ write(info: [AppEventInfo](#appeventinfo)): Promise&lt;void&gt;
**返回值:**
| 类型 | 说明 |
| ------------------- | ------------------------------------------------------------ |
| Promise&lt;void&gt; | Promise对象,可以在其then()、catch()方法中分别对事件写入成功、写入异常的情况进行异步处理。 |
| 类型 | 说明 |
| ------------------- | ------------- |
| Promise&lt;void&gt; | Promise对象。 |
**错误码:**
......@@ -144,9 +128,9 @@ hiAppEvent.write({
## hiAppEvent.configure
configure(config: ConfigOption): void
configure(config: [ConfigOption](configoption)): void
应用事件打点配置方法,可用于配置打点开关、文件目录存储限额大小等功能。
应用事件打点配置方法,可用于配置打点开关、目录存储配额大小等功能。
**系统能力:** SystemCapability.HiviewDFX.HiAppEvent
......@@ -167,12 +151,12 @@ configure(config: ConfigOption): void
**示例:**
```js
// 配置应用事件打点功能开关
// 配置打点开关为关闭状态
hiAppEvent.configure({
disable: true
});
// 配置事件文件目录存储限额大小
// 配置文件目录存储配额为100M
hiAppEvent.configure({
maxStorage: '100M'
});
......@@ -180,20 +164,20 @@ hiAppEvent.configure({
## ConfigOption
此接口提供了应用事件打点的配置选项。
此接口提供了对应用事件打点功能的配置选项。
**系统能力:** SystemCapability.HiviewDFX.HiAppEvent
| 参数名 | 类型 | 必填 | 说明 |
| ---------- | ------- | ---- | ------------------------------------------------------------ |
| disable | boolean | 否 | 应用事件打点功能开关。配置值为true表示关闭打点功能,false表示不关闭打点功能。 |
| maxStorage | string | 否 | 打点数据本地存储文件所在目录的配额大小,默认限额为“10M”。所在目录大小超出限额后会对目录进行清理操作,会按从旧到新的顺序逐个删除打点数据文件,直到目录大小不超出限额时停止。 |
| disable | boolean | 否 | 打点功能开关,默认值为false。true:关闭打点功能,false:不关闭打点功能。 |
| maxStorage | string | 否 | 打点数据存放目录的配额大小,默认值为“10M”。<br>在目录大小超出配额后,下次打点会触发对目录的清理操作:按从旧到新的顺序逐个删除打点数据文件,直到目录大小不超出配额时结束。 |
## hiAppEvent.addWatcher
addWatcher(watcher: [Watcher](#watcher)): [AppEventPackageHolder](#appeventpackageholder)
添加应用事件订阅者
添加应用事件观察者方法,可用于订阅应用事件
**系统能力:** SystemCapability.HiviewDFX.HiAppEvent
......@@ -201,7 +185,7 @@ addWatcher(watcher: [Watcher](#watcher)): [AppEventPackageHolder](#appeventpacka
| 参数名 | 类型 | 必填 | 说明 |
| ------- | -------------------- | ---- | ---------------- |
| watcher | [Watcher](#watcher) | 是 | 应用事件订阅者。 |
| watcher | [Watcher](#watcher) | 是 | 应用事件观察者。 |
**返回值:**
......@@ -224,12 +208,12 @@ addWatcher(watcher: [Watcher](#watcher)): [AppEventPackageHolder](#appeventpacka
**示例:**
```js
// 1. 如果订阅者传入了回调的相关参数,则可以选择在自动触发的回调函数中对订阅事件进行处理
// 1. 如果观察者传入了回调的相关参数,则可以选择在自动触发的回调函数中对订阅事件进行处理
hiAppEvent.addWatcher({
name: "watcher1",
appEventFilters: [
{
domain: "domain_test1",
domain: "test_domain",
eventTypes: [hiAppEvent.EventType.FAULT, hiAppEvent.EventType.BEHAVIOR]
}
],
......@@ -255,7 +239,7 @@ hiAppEvent.addWatcher({
}
});
// 2. 如果订阅者未传入回调的相关参数,则可以选择使用返回的holder对象手动去处理订阅事件
// 2. 如果观察者未传入回调的相关参数,则可以选择使用返回的holder对象手动去处理订阅事件
let holder = hiAppEvent.addWatcher({
name: "watcher2",
});
......@@ -276,7 +260,7 @@ if (holder != null) {
removeWatcher(watcher: [Watcher](#watcher)): void
移除应用事件订阅者
移除应用事件观察者方法,可用于取消订阅应用事件
**系统能力:** SystemCapability.HiviewDFX.HiAppEvent
......@@ -284,7 +268,7 @@ removeWatcher(watcher: [Watcher](#watcher)): void
| 参数名 | 类型 | 必填 | 说明 |
| ------- | -------------------- | ---- | ---------------- |
| watcher | [Watcher](#watcher) | 是 | 应用事件订阅者。 |
| watcher | [Watcher](#watcher) | 是 | 应用事件观察者。 |
**错误码:**
......@@ -297,46 +281,46 @@ removeWatcher(watcher: [Watcher](#watcher)): void
**示例:**
```js
// 1. 定义一个应用事件订阅
// 1. 定义一个应用事件观察
let watcher = {
name: "watcher1",
}
// 2. 开始订阅事件
// 2. 添加一个应用事件观察者来订阅事件
hiAppEvent.addWatcher(watcher);
// 3. 取消订阅事件
// 3. 移除该应用事件观察者以取消订阅事件
hiAppEvent.removeWatcher(watcher);
```
## Watcher
此接口提供了应用事件订阅者的参数选项。
此接口提供了应用事件观察者的参数选项。
**系统能力:** SystemCapability.HiviewDFX.HiAppEvent
| 名称 | 参数类型 | 必填 | 说明 |
| ---------------- | ------------------------------------------------------------ | ---- | -------------------------------- |
| name | string | 是 | 订阅者名称,用于唯一标识订阅者。 |
| triggerCondition | [TriggerCondition](#triggercondition) | 否 | 订阅回调触发条件。 |
| appEventFilters | [AppEventFilter](#appeventfilter)[] | 否 | 订阅过滤条件。 |
| onTrigger | (curRow: number, curSize: number, holder: [AppEventPackageHolder](#appeventpackageholder)) => void | 否 | 订阅回调函数 |
| 名称 | 参数类型 | 必填 | 说明 |
| ---------------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
| name | string | 是 | 观察者名称,用于唯一标识观察者。 |
| triggerCondition | [TriggerCondition](#triggercondition) | 否 | 订阅回调触发条件,需要与回调函数一同传入才会生效。 |
| appEventFilters | [AppEventFilter](#appeventfilter)[] | 否 | 订阅过滤条件,在需要对订阅事件进行过滤时传入。 |
| onTrigger | (curRow: number, curSize: number, holder: [AppEventPackageHolder](#appeventpackageholder)) => void | 否 | 订阅回调函数,需要与回调触发条件一同传入才会生效,函数入参说明如下:<br>curRow:在本次回调触发时的订阅事件总数量; <br>curSize:在本次回调触发时的订阅事件总大小,单位为byte; <br/>holder:订阅数据持有者对象,可以通过其对订阅事件进行处理。 |
## TriggerCondition
此接口提供了订阅者回调触发条件的参数选项
此接口提供了回调触发条件的参数选项,只要满足任一条件就会触发订阅回调
**系统能力:** SystemCapability.HiviewDFX.HiAppEvent
| 名称 | 参数类型 | 必填 | 说明 |
| ------- | -------- | ---- | -------------------------------------- |
| row | number | 否 | 满足触发回调的事件总数 |
| row | number | 否 | 满足触发回调的事件总数量。 |
| size | number | 否 | 满足触发回调的事件总大小,单位为byte。 |
| timeOut | number | 否 | 满足触发回调的时时长,单位为30s。 |
| timeOut | number | 否 | 满足触发回调的时时长,单位为30s。 |
## AppEventFilter
此接口提供了订阅者过滤应用事件的参数选项。
此接口提供了过滤应用事件的参数选项。
**系统能力:** SystemCapability.HiviewDFX.HiAppEvent
......@@ -353,12 +337,18 @@ hiAppEvent.removeWatcher(watcher);
### constructor
constructor(watcherName: string);
constructor(watcherName: string)
类构造函数,在添加订阅时会被系统自动调用来创建一个订阅数据持有者对象并返回给开发者。
类构造函数,在添加应用事件观察者时,会由系统自动调用来创建一个该观察者对应的订阅数据持有者对象,并返回给开发者。
**系统能力:** SystemCapability.HiviewDFX.HiAppEvent
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ----------------- | ---- | ------------------------ |
| watcherName | string | 是 | 观察者名称。 |
**示例:**
```js
......@@ -371,10 +361,16 @@ let holder = hiAppEvent.addWatcher({
setSize(size: number): void
设置每次取出的应用事件包的数据大小阈值,单位为byte,默认值为512*1024
设置每次取出的应用事件包的数据大小阈值。
**系统能力:** SystemCapability.HiviewDFX.HiAppEvent
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | -------------------------------------------- |
| size | number | 是 | 数据大小阈值,单位为byte,默认值为512*1024。 |
**错误码:**
以下错误码的详细介绍请参见[应用事件打点错误码](../errorcodes/errcode-hiviewdfx-hiappevent.md)
......@@ -419,7 +415,7 @@ let eventPkg = holder.takeNext();
| --------- | -------- | ------------------------------ |
| packageId | number | 事件包ID,从0开始自动递增。 |
| row | number | 事件包的事件数量。 |
| size | number | 事件包的数据大小,单位为byte。 |
| size | number | 事件包的事件大小,单位为byte。 |
| data | string[] | 事件包的事件信息。 |
## hiAppEvent.clearData
......
# USB管理
本模块主要提供管理USB设备的相关功能,包括查询USB设备列表、批量数据传输、控制命令传输、权限控制等。
本模块主要提供管理USB设备的相关功能,包括主设备上查询USB设备列表、批量数据传输、控制命令传输、权限控制等;从设备上端口管理、功能切换及查询等。
> **说明:**
>
> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
## 导入模块
```js
import usb from "@ohos.usb";
import usb from "@ohos.usbV9";
```
## usb.getDevices
getDevices(): Array&lt;Readonly&lt;USBDevice&gt;&gt;
获取USB设备列表。
获取接入主设备的USB设备列表。如果没有设备接入,那么将会返回一个空的列表。
**系统能力:** SystemCapability.USB.USBManager
......@@ -89,7 +89,7 @@ connectDevice(device: USBDevice): Readonly&lt;USBDevicePipe&gt;
打开USB设备。
需要调用[usb.getDevices](#usbgetdevices)获取设备信息以及device,再调用[usb.requestRight](#usbrequestright)获取设备请求权限。
需要调用[usb.getDevices](#usbgetdevices)获取设备信息以及device,再调用[usb.requestRight](#usbrequestright)请求使用该设备的权限。
**系统能力:** SystemCapability.USB.USBManager
......@@ -105,10 +105,26 @@ connectDevice(device: USBDevice): Readonly&lt;USBDevicePipe&gt;
| -------- | -------- |
| Readonly&lt;[USBDevicePipe](#usbdevicepipe)&gt; | 指定的传输通道对象。 |
**错误码:**
以下错误码的详细介绍参见[USB错误码](../errorcodes/errcode-usb.md)
| 错误码ID | 错误信息 |
| -------- | -------- |
| 14400001 |Permission denied. Need call requestRight to get permission. |
**示例:**
```js
let devicepipe= usb.connectDevice(device);
let devicesList = usb.getDevices();
if (devicesList.length == 0) {
console.log(`device list is empty`);
return;
}
let device = devicesList[0];
usb.requestRight(device.name);
let devicepipe = usb.connectDevice(device);
console.log(`devicepipe = ${JSON.stringify(devicepipe)}`);
```
......@@ -169,6 +185,70 @@ usb.requestRight(devicesName).then((ret) => {
});
```
## usb.removeRight
removeRight(deviceName: string): boolean;
移除软件包访问设备的权限。
**系统能力:** SystemCapability.USB.USBManager
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| deviceName | string | 是 | 设备名称。 |
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| boolean | 返回权限移除结果。返回true表示权限移除成功;返回false则表示权限移除失败。 |
**示例:**
```js
let devicesName="1-1";
if (usb.removeRight(devicesName) {
console.log(`Succeed in removing right`);
}
```
## usb.addRight
addRight(bundleName: string, deviceName: string): boolean;
添加软件包访问设备的权限。
[requestRight](#usbrequestright)的会触发弹框请求用户授权;addRight不会触发弹框,而是直接添加软件包访问设备的权限。
**系统接口:** 此接口为系统接口。
**系统能力:** SystemCapability.USB.USBManager
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| deviceName | string | 是 | 设备名称。 |
| bundleName | string | 是 | 软件包名称。|
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| boolean | 返回权限添加结果。返回true表示权限添加成功;返回false则表示权限添加失败。 |
**示例:**
```js
let devicesName = "1-1";
let bundleName = "com.example.hello";
if (usb.addRight(bundleName, devicesName) {
console.log(`Succeed in adding right`);
}
```
## usb.claimInterface
claimInterface(pipe: USBDevicePipe, iface: USBInterface, force?: boolean): number
......@@ -443,7 +523,7 @@ let ret = usb.closePipe(devicepipe);
console.log(`closePipe = ${ret}`);
```
## usb.usbFunctionsFromString<sup>9+</sup>
## usb.usbFunctionsFromString
usbFunctionsFromString(funcs: string): number
......@@ -472,7 +552,7 @@ let funcs = "acm";
let ret = usb.usbFunctionsFromString(funcs);
```
## usb.usbFunctionsToString<sup>9+</sup>
## usb.usbFunctionsToString
usbFunctionsToString(funcs: FunctionType): string
......@@ -486,7 +566,7 @@ usbFunctionsToString(funcs: FunctionType): string
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------------------------------ | ---- | ----------------- |
| funcs | [FunctionType](#functiontype9) | 是 | USB功能数字掩码。 |
| funcs | [FunctionType](#functiontype) | 是 | USB功能数字掩码。 |
**返回值:**
......@@ -501,7 +581,7 @@ let funcs = ACM | ECM;
let ret = usb.usbFunctionsToString(funcs);
```
## usb.setCurrentFunctions<sup>9+</sup>
## usb.setCurrentFunctions
setCurrentFunctions(funcs: FunctionType): Promise\<boolean\>
......@@ -515,7 +595,7 @@ setCurrentFunctions(funcs: FunctionType): Promise\<boolean\>
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------------------------------ | ---- | ----------------- |
| funcs | [FunctionType](#functiontype9) | 是 | USB功能数字掩码。 |
| funcs | [FunctionType](#functiontype) | 是 | USB功能数字掩码。 |
**返回值:**
......@@ -530,7 +610,7 @@ let funcs = HDC;
let ret = usb.setCurrentFunctions(funcs);
```
## usb.getCurrentFunctions<sup>9+</sup>
## usb.getCurrentFunctions
getCurrentFunctions(): FunctionType
......@@ -544,7 +624,7 @@ getCurrentFunctions(): FunctionType
| 类型 | 说明 |
| ------------------------------ | --------------------------------- |
| [FunctionType](#functiontype9) | 当前的USB功能列表的数字组合掩码。 |
| [FunctionType](#functiontype) | 当前的USB功能列表的数字组合掩码。 |
**示例:**
......@@ -552,7 +632,7 @@ getCurrentFunctions(): FunctionType
let ret = usb.getCurrentFunctions();
```
## usb.getPorts<sup>9+</sup>
## usb.getPorts
getPorts(): Array\<USBPort\>
......@@ -566,7 +646,7 @@ getPorts(): Array\<USBPort\>
| 类型 | 说明 |
| ----------------------------- | --------------------- |
| [Array\<USBPort\>](#usbport9) | USB端口描述信息列表。 |
| [Array\<USBPort\>](#usbport) | USB端口描述信息列表。 |
**示例:**
......@@ -574,7 +654,7 @@ getPorts(): Array\<USBPort\>
let ret = usb.getPorts();
```
## usb.getSupportedModes<sup>9+</sup>
## usb.getSupportedModes
getSupportedModes(portId: number): PortModeType
......@@ -594,7 +674,7 @@ getSupportedModes(portId: number): PortModeType
| 类型 | 说明 |
| ------------------------------ | -------------------------- |
| [PortModeType](#portmodetype9) | 支持的模式列表的组合掩码。 |
| [PortModeType](#portmodetype) | 支持的模式列表的组合掩码。 |
**示例:**
......@@ -602,7 +682,7 @@ getSupportedModes(portId: number): PortModeType
let ret = usb.getSupportedModes(0);
```
## usb.setPortRoles<sup>9+</sup>
## usb.setPortRoles
setPortRoles(portId: number, powerRole: PowerRoleType, dataRole: DataRoleType): Promise\<boolean\>
......@@ -617,8 +697,8 @@ setPortRoles(portId: number, powerRole: PowerRoleType, dataRole: DataRoleType):
| 参数名 | 类型 | 必填 | 说明 |
| --------- | -------------------------------- | ---- | ---------------- |
| portId | number | 是 | 端口号。 |
| powerRole | [PowerRoleType](#powerroletype9) | 是 | 充电的角色。 |
| dataRole | [DataRoleType](#dataroletype9) | 是 | 数据传输的角色。 |
| powerRole | [PowerRoleType](#powerroletype) | 是 | 充电的角色。 |
| dataRole | [DataRoleType](#dataroletype) | 是 | 数据传输的角色。 |
**返回值:**
......@@ -729,7 +809,7 @@ USB设备消息传输通道,用于确定设备。
| index | number | 请求参数value对应的索引值。 |
| data | Uint8Array | 用于写入或读取的缓冲区。 |
## USBPort<sup>9+</sup>
## USBPort
USB设备端口。
......@@ -740,10 +820,10 @@ USB设备端口。
| 名称 | 参数类型 | 说明 |
| -------------- | -------------------------------- | ----------------------------------- |
| id | number | USB端口唯一标识。 |
| supportedModes | [PortModeType](#portmodetype9) | USB端口所支持的模式的数字组合掩码。 |
| status | [USBPortStatus](#usbportstatus9) | USB端口角色。 |
| supportedModes | [PortModeType](#portmodetype) | USB端口所支持的模式的数字组合掩码。 |
| status | [USBPortStatus](#usbportstatus) | USB端口角色。 |
## USBPortStatus<sup>9+</sup>
## USBPortStatus
USB设备端口角色信息。
......@@ -793,7 +873,7 @@ USB设备端口角色信息。
| USB_REQUEST_DIR_TO_DEVICE | 0 | 写数据,主设备往从设备。 |
| USB_REQUEST_DIR_FROM_DEVICE | 0x80 | 读数据,从设备往主设备。 |
## FunctionType<sup>9+</sup>
## FunctionType
USB设备侧功能。
......@@ -814,7 +894,7 @@ USB设备侧功能。
| AUDIO_SOURCE | 128 | 暂不支持。 |
| NCM | 256 | 暂不支持。 |
## PortModeType<sup>9+</sup>
## PortModeType
USB端口模式类型。
......@@ -830,7 +910,7 @@ USB端口模式类型。
| DRP | 3 | 既可以做DFP(Host),也可以做UFP(Device),当前不支持。 |
| NUM_MODES | 4 | 当前不支持。 |
## PowerRoleType<sup>9+</sup>
## PowerRoleType
电源角色类型。
......@@ -844,7 +924,7 @@ USB端口模式类型。
| SOURCE | 1 | 外部供电。 |
| SINK | 2 | 内部供电。 |
## DataRoleType<sup>9+</sup>
## DataRoleType
数据角色类型。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册