diff --git "a/zh-cn/application-dev/quick-start/CommonEvent\345\274\200\345\217\221\346\214\207\345\215\227.md" "b/zh-cn/application-dev/quick-start/CommonEvent\345\274\200\345\217\221\346\214\207\345\215\227.md" new file mode 100644 index 0000000000000000000000000000000000000000..e9871888fc0b59077350b2c0696ea3a24fbc9cc1 --- /dev/null +++ "b/zh-cn/application-dev/quick-start/CommonEvent\345\274\200\345\217\221\346\214\207\345\215\227.md" @@ -0,0 +1,521 @@ +CommonEvent开发指南 + +#### 基本概念 + +OpenHarmony通过CES(Common Event Service,公共事件服务)为应用程序提供订阅、发布、退订公共事件的能力。 + +公共事件可分为系统公共事件和自定义公共事件。 + +- 系统公共事件:系统将收集到的事件信息,根据系统策略发送给订阅该事件的用户程序。 例如:系统关键服务发布的系统事件(例如:hap安装,更新,卸载等)。 + +- 自定义公共事件:应用自定义一些公共事件用来实现跨应用的事件通信能力。 + +每个应用都可以按需订阅公共事件,订阅成功且公共事件发布,系统会把其发送给应用。这些公共事件可能来自系统、其他应用和应用自身。 + + + +#### 接口列表 + +| API | 手机 | 平板 | 智慧屏 | 智能穿戴 | 轻量级智能穿戴 | +| ------------------------------------------------------------ | ---- | ---- | ------ | -------- | -------------- | +| CommonEvent.publish(event: string, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | 不支持 | +| CommonEvent.publish(event: string, options: CommonEventPublishData, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | 不支持 | +| CommonEvent.createSubscriber(subscribeInfo: CommonEventSubscribeInfo, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | 不支持 | +| CommonEvent.createSubscriber(subscribeInfo: CommonEventSubscribeInfo) | 支持 | 支持 | 支持 | 支持 | 不支持 | +| CommonEvent.subscribe(subscriber: CommonEventSubscriber, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | 不支持 | +| CommonEvent.unsubscribe(subscriber: CommonEventSubscriber, callback?: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | 不支持 | + + + +#### 导入模块 + +```js +import CommonEvent from '@ohos.commonevent'; +``` + + + +#### 创建公共事件订阅者 + +根据开发者设定的公共事件订阅相关信息(比如准备订阅的公共事件集等)创建公共事件订阅者对象。 + +- CommonEventSubscribeInfo类型说明 + + CommonEventSubscribeInfo封装公共事件订阅相关信息,比如准备订阅的公共事件集、发布者必须具备的权限、发布者的设备ID、发布者的用户ID、优先级等。 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ------------------- | -------- | ------------- | ---- | ------------------------------------------------------------ | + | events | 只读 | Array | 是 | 表示要订阅的公共事件集。 | + | publisherPermission | 只读 | string | 否 | 表示发布者的权限。 | + | publisherDeviceId | 只读 | int | 否 | 表示发布者的设备ID,该值必须是同一ohos网络上的现有设备ID。 | + | userId | 只读 | int | 否 | 表示发布者的用户ID。默认值当前用户的ID。如果指定了此参数,则该值必须是系统中现有的用户ID。 | + | priority | 只读 | int | 否 | 表示订阅者的优先级,范围为-100~1000,用于有序公共事件。 | + +- CommonEventSubscriber 类说明 + + CommonEventSubscriber封装公共事件订阅者及相关参数,主要接口如下。 + + | 名称 | 参数 | 返回值 | 描述 | + | --------------------- | --------------------------------------------------------- | --------------------------------- | ------------------------------------------------------------ | + | getCode | callback: AsyncCallback | void | 获取公共事件的结果代码(callback形式) | + | getCode | void | Promise | 获取公共事件的结果代码(Promise形式) | + | setCode | code: number, callback: AsyncCallback | void | 设置有序公共事件的结果代码(callback形式) | + | setCode | code: number | Promise | 设置有序公共事件的结果代码(Promise形式) | + | getData | callback: AsyncCallback | void | 获取公共事件的结果数据(callback形式) | + | getData | void | Promise | 获取公共事件的结果数据(Promise形式) | + | setData | data: string, callback: AsyncCallback | void | 设置有序公共事件的结果数据(callback形式) | + | setData | data: string | Promise | 设置有序公共事件的结果数据(Promise形式) | + | setCodeAndData | code: number, data: string, callback: AsyncCallback | void | 设置有序公共事件的结果代码和结果数据(callback形式) | + | setCodeAndData | code: number, data: string | Promise | 设置有序公共事件的结果代码和结果数据(Promise形式) | + | isOrderedCommonEvent | callback: AsyncCallback | void | 查询当前公共事件的是否为有序公共事件,返回true代表是有序公共事件,false代表不是有序公共事件(callback形式) | + | isOrderedCommonEvent | void | Promise | 查询当前公共事件的是否为有序公共事件,返回true代表是有序公共事件,false代表不是有序公共事件(Promise形式) | + | abortCommonEvent | callback: AsyncCallback | void | 取消当前的公共事件,仅对有序公共事件有效,取消后,公共事件不再向下一个订阅者传递(callback形式) | + | abortCommonEvent | void | Promise | 取消当前的公共事件,仅对有序公共事件有效,取消后,公共事件不再向下一个订阅者传递(Promise形式) | + | clearAbortCommonEvent | callback: AsyncCallback | void | 清除当前有序公共事件abort状态(callback形式) | + | clearAbortCommonEvent | void | Promise | 清除当前有序公共事件abort状态(Promise形式) | + | getAbortCommonEvent | callback: AsyncCallback | void | 获取当前有序公共事件是否取消的状态(callback形式) | + | getAbortCommonEvent | void | Promise | 获取当前有序公共事件是否取消的状态Promise形式) | + | getSubscribeInfo | callback: AsyncCallback | void | 获取订阅者的订阅信息(callback形式) | + | getSubscribeInfo | void | Promise | 获取订阅者的订阅信息(Promise形式) | + + + +- 创建订阅者接口(callback形式) + + CommonEvent.createSubscriber(subscribeInfo: CommonEventSubscribeInfo, callback: AsyncCallback) + + - 接口参数描述 + + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ------------- | -------- | ------------------------------------ | ---- | ------------------------ | + | subscribeInfo | 只读 | CommonEventSubscribeInfo | 是 | 表示公共事件订阅信息 | + | callback | 只读 | AsyncCallback | 是 | 表示创建订阅者的回调方法 | + + - 返回值 + + void + + - 示例代码 + + ```js + var subscriber; //用于保存创建成功的订阅者对象,后续使用其完成订阅及退订的动作 + //订阅者信息 + var subscribeInfo = { + events: ["event"] + }; + //创建订阅者回调 + function CreateSubscriberCallBack(err, data) { + console.info("==========================>CreateSubscriberCallBack=======================>"); + subscriber = data; + } + //创建订阅者 + CommonEvent.createSubscriber(subscribeInfo, CreateSubscriberCallBack); + ``` + +- 创建订阅者接口(Promise形式) + + CommonEvent.createSubscriber(subscribeInfo: CommonEventSubscribeInfo) + + - 接口参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ------------- | -------- | ------------------------ | ---- | ------------ | + | subscribeInfo | 只读 | CommonEventSubscribeInfo | 是 | 表示订阅信息 | + + - 返回值 + + Promise + + - 示例代码 + + ```js +var subscriber; //用于保存创建成功的订阅者对象,后续使用其完成订阅及退订的动作 + //订阅者信息 + var subscribeInfo = { + events: ["event"] + }; + //创建订阅者 + CommonEvent.createSubscriber(subscribeInfo).then((data) => { + console.info("==========================>createSubscriberPromise=======================>"); + subscriber = data; + }); + ``` + + + +#### 订阅公共事件 + +订阅公共事件,并指定公共事件订阅者对象和接收公共事件的回调函数。 + +- CommonEventData类型说明 + + CommonEventData封装公共事件相关信息。用于在接收时处理数据。 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ---------- | -------- | -------------------- | ---- | ------------------------------------------------------- | + | event | 只读 | string | 是 | 表示当前接收的公共事件名称 | + | bundleName | 只读 | string | 否 | 表示包名称 | + | code | 只读 | int | 否 | 表示公共事件的结果代码,用于传递int类型的数据 | + | data | 只读 | string | 否 | 表示公共事件的自定义结果数据,用于传递string 类型的数据 | + | parameters | 只读 | {[key: string]: any} | 否 | 表示公共事件的附加信息 | + +- 订阅公共事件接口(callback形式) + + CommonEvent.subscribe(subscriber: CommonEventSubscriber, callback: AsyncCallback) + + - 接口参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ---------- | -------- | ------------------------------ | ---- | ------------------------------ | + | subscriber | 只读 | CommonEventSubscriber | 是 | 表示订阅者对象 | + | callback | 只读 | AsyncCallback | 是 | 表示接收公共事件数据的回调函数 | + + - 返回值 + + void + + - 示例代码 + + **无序事件:** + + ```js + var subscriber; //用于保存创建成功的订阅者对象,后续使用其完成订阅及退订的动作 + //订阅者信息 + var subscribeInfo = { + events: ["event"] + }; + //订阅公共事件回调 + function SubscribeCallBack(err, data) { + console.info("==========================>SubscribeCallBack=======================>"); + } + //创建订阅者回调 + function CreateSubscriberCallBack(err, data) { + console.info("==========================>CreateSubscriberCallBack=======================>"); + subscriber = data; + //订阅公共事件 + CommonEvent.subscribe(subscriber, SubscribeCallBack); + } + //创建订阅者 + CommonEvent.createSubscriber(subscribeInfo, CreateSubscriberCallBack); + ``` + + **有序事件:** + + ```js + var subscriber; //用于保存创建成功的订阅者对象,后续使用其完成订阅及退订的动作 + //订阅者信息 + var subscribeInfo = { + events: ["event"] + }; + + //设置有序公共事件的结果代码回调 + function SetCodeCallBack(err) { + console.info("==========================>SetCodeCallBack=======================>"); + } + //设置有序公共事件的结果数据回调 + function SetDataCallBack(err) { + console.info("==========================>SetDataCallBack=======================>"); + } + //完成本次有序公共事件处理回调 + function FinishCommonEventCallBack(err) { + console.info("==========================>FinishCommonEventCallBack=======================>"); + } + //订阅公共事件回调 + function SubscribeCallBack(err, data) { + console.info("==========================>SubscribeCallBack=======================>"); + //设置有序公共事件的结果代码 + subscriber.setCode(0, SetCodeCallBack); + //设置有序公共事件的结果数据 + subscriber.setData("publish_data_changed", SetDataCallBack); + //完成本次有序公共事件处理 + subscriber.finishCommonEvent(FinishCommonEventCallBack) + } + + //创建订阅者回调 + function CreateSubscriberCallBack(err, data) { + console.info("==========================>CreateSubscriberCallBack=======================>"); + subscriber = data; + //订阅公共事件 + CommonEvent.subscribe(subscriber, SubscribeCallBack); + } + + //创建订阅者 + CommonEvent.createSubscriber(subscribeInfo, CreateSubscriberCallBack); + ``` + + + +#### 发布公共事件 + +发布指定事件名称的公共事件,并可携带事件相关数据、属性、限制等信息。 + +- CommonEventPublishData类型说明 + + CommonEventPublishData封装公共事件发布相关数据、属性及限制等信息,包括公共事件类型(有序或无序)、订阅者所需权限等。 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | --------------------- | -------- | -------------------- | ---- | ---------------------------- | + | bundleName | 只读 | string | 否 | 表示包名称 | + | code | 只读 | int | 否 | 表示公共事件的结果代码 | + | data | 只读 | string | 否 | 表示公共事件的自定义结果数据 | + | subscriberPermissions | 只读 | Array | 否 | 表示订阅者所需的权限 | + | isOrdered | 只读 | bool | 否 | 表示是否是有序事件 | + | parameters | 只读 | {[key: string]: any} | 否 | 表示公共事件的附加信息 | + +- 发布公共事件接口(callback形式) + + CommonEvent.publish(event: string, callback: AsyncCallback) + + - 接口参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ------------------- | ---- | ------------------------ | + | event | 只读 | string | 是 | 表示要发送的公共事件名称 | + | callback | 只读 | AsyncCallback | 是 | 表示被指定的回调方法 | + + - 返回值 + + void + + - 示例代码 + + ```js + //发布公共事件回调 + function PublishCallBack(err) { + console.info("==========================>PublishCallBack=======================>"); + console.info("==========================>err:=======================>", err.code); + } + //发布公共事件 + CommonEvent.publish("publish_event", PublishCallBack); + ``` + +- 发布公共事件指定发布信息接口(callback形式) + + CommonEvent.publish(event: string, options: CommonEventPublishData, callback: AsyncCallback) + + - 接口参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ---------------------- | ---- | ------------------------ | + | event | 只读 | string | 是 | 表示要发布的公共事件名称 | + | options | 只读 | CommonEventPublishData | 是 | 表示发布公共事件的属性 | + | callback | 只读 | AsyncCallback | 是 | 表示被指定的回调方法 | + + - 返回值 + + void + + - 示例代码 + + ```js +//公共事件相关信息 + var options = { + code: 0; //公共事件的初始代码 + data: "initial data";//公共事件的初始数据 + isOrdered: true; //有序公共事件 +} +//发布公共事件回调 + function PublishCallBack(err) { + console.info("==========================>PublishCallBack=======================>"); + } + //发布公共事件 + CommonEvent.publish("publish_event", options, PublishCallBack); + ``` + + + +#### 取消订阅公共事件 + +- 取消订阅公共事件接口(callback形式) + + CommonEvent.unsubscribe(subscriber: CommonEventSubscriber, callback?: AsyncCallback) + + - 接口参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ---------- | -------- | --------------------- | ---- | ---------------------- | + | subscriber | 只读 | CommonEventSubscriber | 是 | 表示订阅者对象 | + | callback | 只读 | AsyncCallback | 是 | 表示取消订阅的回调方法 | + + - 返回值 + + void + + - 示例代码 + + ```js + var subscriber; //用于保存创建成功的订阅者对象,后续使用其完成订阅及退订的动作 + //订阅者信息 + var subscribeInfo = { + events: ["event"] + }; + //订阅公共事件回调 + function SubscribeCallBack(err, data) { + console.info("==========================>SubscribeCallBack=======================>"); + } + //创建订阅者回调 + function CreateSubscriberCallBack(err, data) { + console.info("==========================>CreateSubscriberCallBack=======================>"); + subscriber = data; + //订阅公共事件 + CommonEvent.subscribe(subscriber, SubscribeCallBack); + } + //取消订阅公共事件回调 + function UnsubscribeCallBack(err) { + console.info("==========================>UnsubscribeCallBack=======================>"); + } + //创建订阅者 + CommonEvent.createSubscriber(subscribeInfo, CreateSubscriberCallBack); + //取消订阅公共事件 + CommonEvent.unsubscribe(subscriber, UnsubscribeCallBack); + ``` + + + + +#### 系统公共事件列表 + +| 系统公共事件宏 | 系统公共事件名称 | 订阅者所需权限 | +| ------------------------------------------------------------ | ----------------------------------------------------------- | ------------------------------------------------------------ | +| COMMON_EVENT_BOOT_COMPLETED | usual.event.BOOT_COMPLETED | ohos.permission.RECEIVER_STARTUP_COMPLETED | +| COMMON_EVENT_LOCKED_BOOT_COMPLETED | usual.event.LOCKED_BOOT_COMPLETED | ohos.permission.RECEIVER_STARTUP_COMPLETED | +| COMMON_EVENT_SHUTDOWN | usual.event.SHUTDOWN | 无 | +| COMMON_EVENT_BATTERY_CHANGED | usual.event.BATTERY_CHANGED | 无 | +| COMMON_EVENT_BATTERY_LOW | usual.event.BATTERY_LOW | 无 | +| COMMON_EVENT_BATTERY_OKAY | usual.event.BATTERY_OKAY | 无 | +| COMMON_EVENT_POWER_CONNECTED | usual.event.POWER_CONNECTED | 无 | +| COMMON_EVENT_POWER_DISCONNECTED | usual.event.POWER_DISCONNECTED | 无 | +| COMMON_EVENT_SCREEN_OFF | usual.event.SCREEN_OFF | 无 | +| COMMON_EVENT_SCREEN_ON | usual.event.SCREEN_ON | 无 | +| COMMON_EVENT_USER_PRESENT | usual.event.USER_PRESENT | 无 | +| COMMON_EVENT_TIME_TICK | usual.event.TIME_TICK | 无 | +| COMMON_EVENT_TIME_CHANGED | usual.event.TIME_CHANGED | 无 | +| COMMON_EVENT_DATE_CHANGED | usual.event.DATE_CHANGED | 无 | +| COMMON_EVENT_TIMEZONE_CHANGED | usual.event.TIMEZONE_CHANGED | 无 | +| COMMON_EVENT_CLOSE_SYSTEM_DIALOGS | usual.event.CLOSE_SYSTEM_DIALOGS | 无 | +| COMMON_EVENT_PACKAGE_ADDED | usual.event.PACKAGE_ADDED | 无 | +| COMMON_EVENT_PACKAGE_REPLACED | usual.event.PACKAGE_REPLACED | 无 | +| COMMON_EVENT_MY_PACKAGE_REPLACED | usual.event.MY_PACKAGE_REPLACED | 无 | +| COMMON_EVENT_PACKAGE_REMOVED | usual.event.PACKAGE_REMOVED | 无 | +| COMMON_EVENT_PACKAGE_FULLY_REMOVED | usual.event.PACKAGE_FULLY_REMOVED | 无 | +| COMMON_EVENT_PACKAGE_CHANGED | usual.event.PACKAGE_CHANGED | 无 | +| COMMON_EVENT_PACKAGE_RESTARTED | usual.event.PACKAGE_RESTARTED | 无 | +| COMMON_EVENT_PACKAGE_DATA_CLEARED | usual.event.PACKAGE_DATA_CLEARED | 无 | +| COMMON_EVENT_PACKAGES_SUSPENDED | usual.event.PACKAGES_SUSPENDED | 无 | +| COMMON_EVENT_PACKAGES_UNSUSPENDED | usual.event.PACKAGES_UNSUSPENDED | 无 | +| COMMON_EVENT_MY_PACKAGE_SUSPENDED | usual.event.MY_PACKAGE_SUSPENDED | 无 | +| COMMON_EVENT_MY_PACKAGE_UNSUSPENDED | usual.event.MY_PACKAGE_UNSUSPENDED | 无 | +| COMMON_EVENT_UID_REMOVED | usual.event.UID_REMOVED | 无 | +| COMMON_EVENT_PACKAGE_FIRST_LAUNCH | usual.event.PACKAGE_FIRST_LAUNCH | 无 | +| COMMON_EVENT_PACKAGE_NEEDS_VERIFICATION | usual.event.PACKAGE_NEEDS_VERIFICATION | 无 | +| COMMON_EVENT_PACKAGE_VERIFIED | usual.event.PACKAGE_VERIFIED | 无 | +| COMMON_EVENT_EXTERNAL_APPLICATIONS_AVAILABLE | usual.event.EXTERNAL_APPLICATIONS_AVAILABLE | 无 | +| COMMON_EVENT_EXTERNAL_APPLICATIONS_UNAVAILABLE | usual.event.EXTERNAL_APPLICATIONS_UNAVAILABLE | 无 | +| COMMON_EVENT_CONFIGURATION_CHANGED | usual.event.CONFIGURATION_CHANGED | 无 | +| COMMON_EVENT_LOCALE_CHANGED | usual.event.LOCALE_CHANGED | 无 | +| COMMON_EVENT_MANAGE_PACKAGE_STORAGE | usual.event.MANAGE_PACKAGE_STORAGE | 无 | +| COMMON_EVENT_DRIVE_MODE | common.event.DRIVE_MODE | 无 | +| COMMON_EVENT_HOME_MODE | common.event.HOME_MODE | 无 | +| COMMON_EVENT_OFFICE_MODE | common.event.OFFICE_MODE | 无 | +| COMMON_EVENT_USER_STARTED | usual.event.USER_STARTED | 无 | +| COMMON_EVENT_USER_BACKGROUND | usual.event.USER_BACKGROUND | 无 | +| COMMON_EVENT_USER_FOREGROUND | usual.event.USER_FOREGROUND | 无 | +| COMMON_EVENT_USER_SWITCHED | usual.event.USER_SWITCHED | ohos.permission.MANAGE_USERS | +| COMMON_EVENT_USER_STARTING | usual.event.USER_STARTING | ohos.permission.INTERACT_ACROSS_USERS | +| COMMON_EVENT_USER_UNLOCKED | usual.event.USER_UNLOCKED | 无 | +| COMMON_EVENT_USER_STOPPING | usual.event.USER_STOPPING | ohos.permission.INTERACT_ACROSS_USERS | +| COMMON_EVENT_USER_STOPPED | usual.event.USER_STOPPED | 无 | +| COMMON_EVENT_HWID_LOGIN | common.event.HWID_LOGIN | 无 | +| COMMON_EVENT_HWID_LOGOUT | common.event.HWID_LOGOUT | 无 | +| COMMON_EVENT_HWID_TOKEN_INVALID | common.event.HWID_TOKEN_INVALID | 无 | +| COMMON_EVENT_HWID_LOGOFF | common.event.HWID_LOGOFF | 无 | +| COMMON_EVENT_WIFI_POWER_STATE | usual.event.wifi.POWER_STATE | 无 | +| COMMON_EVENT_WIFI_SCAN_FINISHED | usual.event.wifi.SCAN_FINISHED | ohos.permission.LOCATION | +| COMMON_EVENT_WIFI_RSSI_VALUE | usual.event.wifi.RSSI_VALUE | ohos.permission.GET_WIFI_INFO | +| COMMON_EVENT_WIFI_CONN_STATE | usual.event.wifi.CONN_STATE | 无 | +| COMMON_EVENT_WIFI_HOTSPOT_STATE | usual.event.wifi.HOTSPOT_STATE | 无 | +| COMMON_EVENT_WIFI_AP_STA_JOIN | usual.event.wifi.WIFI_HS_STA_JOIN | ohos.permission.GET_WIFI_INFO | +| COMMON_EVENT_WIFI_AP_STA_LEAVE | usual.event.wifi.WIFI_HS_STA_LEAVE | ohos.permission.GET_WIFI_INFO | +| COMMON_EVENT_WIFI_MPLINK_STATE_CHANGE | usual.event.wifi.mplink.STATE_CHANGE | ohos.permission.MPLINK_CHANGE_STATE | +| COMMON_EVENT_WIFI_P2P_CONN_STATE | usual.event.wifi.p2p.CONN_STATE_CHANGE | ohos.permission.GET_WIFI_INFO and ohos.permission.LOCATION | +| COMMON_EVENT_WIFI_P2P_STATE_CHANGED | usual.event.wifi.p2p.STATE_CHANGE | ohos.permission.GET_WIFI_INFO | +| COMMON_EVENT_WIFI_P2P_PEERS_STATE_CHANGED | usual.event.wifi.p2p.DEVICES_CHANGE | ohos.permission.GET_WIFI_INFO | +| COMMON_EVENT_WIFI_P2P_PEERS_DISCOVERY_STATE_CHANGED | usual.event.wifi.p2p.PEER_DISCOVERY_STATE_CHANGE | ohos.permission.GET_WIFI_INFO | +| COMMON_EVENT_WIFI_P2P_CURRENT_DEVICE_STATE_CHANGED | usual.event.wifi.p2p.CURRENT_DEVICE_CHANGE | ohos.permission.GET_WIFI_INFO | +| COMMON_EVENT_WIFI_P2P_GROUP_STATE_CHANGED | usual.event.wifi.p2p.GROUP_STATE_CHANGED | ohos.permission.GET_WIFI_INFO | +| COMMON_EVENT_BLUETOOTH_HANDSFREE_AG_CONNECT_STATE_UPDATE | usual.event.bluetooth.handsfree.ag.CONNECT_STATE_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_HANDSFREE_AG_CURRENT_DEVICE_UPDATE | usual.event.bluetooth.handsfree.ag.CURRENT_DEVICE_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_HANDSFREE_AG_AUDIO_STATE_UPDATE | usual.event.bluetooth.handsfree.ag.AUDIO_STATE_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_A2DPSOURCE_CONNECT_STATE_UPDATE | usual.event.bluetooth.a2dpsource.CONNECT_STATE_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_A2DPSOURCE_CURRENT_DEVICE_UPDATE | usual.event.bluetooth.a2dpsource.CURRENT_DEVICE_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_A2DPSOURCE_PLAYING_STATE_UPDATE | usual.event.bluetooth.a2dpsource.PLAYING_STATE_UPDATE" | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_A2DPSOURCE_AVRCP_CONNECT_STATE_UPDATE | usual.event.bluetooth.a2dpsource.AVRCP_CONNECT_STATE_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_A2DPSOURCE_CODEC_VALUE_UPDATE | usual.event.bluetooth.a2dpsource.CODEC_VALUE_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_DISCOVERED | usual.event.bluetooth.remotedevice.DISCOVERED | ohos.permission.USE_BLUETOOTH and ohos.permission.LOCATION | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_CLASS_VALUE_UPDATE | usual.event.bluetooth.remotedevice.CLASS_VALUE_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_ACL_CONNECTED | usual.event.bluetooth.remotedevice.ACL_CONNECTED | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_ACL_DISCONNECTED | usual.event.bluetooth.remotedevice.ACL_DISCONNECTED | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_NAME_UPDATE | usual.event.bluetooth.remotedevice.NAME_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_PAIR_STATE | usual.event.bluetooth.remotedevice.PAIR_STATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_BATTERY_VALUE_UPDATE | usual.event.bluetooth.remotedevice.BATTERY_VALUE_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_SDP_RESULT | usual.event.bluetooth.remotedevice.SDP_RESULT | 无 | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_UUID_VALUE | usual.event.bluetooth.remotedevice.UUID_VALUE | ohos.permission.DISCOVER_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_PAIRING_REQ | usual.event.bluetooth.remotedevice.PAIRING_REQ | ohos.permission.DISCOVER_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_PAIRING_CANCEL | usual.event.bluetooth.remotedevice.PAIRING_CANCEL | 无 | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_CONNECT_REQ | usual.event.bluetooth.remotedevice.CONNECT_REQ | 无 | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_CONNECT_REPLY | usual.event.bluetooth.remotedevice.CONNECT_REPLY | 无 | +| COMMON_EVENT_BLUETOOTH_REMOTEDEVICE_CONNECT_CANCEL | usual.event.bluetooth.remotedevice.CONNECT_CANCEL | 无 | +| COMMON_EVENT_BLUETOOTH_HANDSFREEUNIT_CONNECT_STATE_UPDATE | usual.event.bluetooth.handsfreeunit.CONNECT_STATE_UPDATE | 无 | +| COMMON_EVENT_BLUETOOTH_HANDSFREEUNIT_AUDIO_STATE_UPDATE | usual.event.bluetooth.handsfreeunit.AUDIO_STATE_UPDATE | 无 | +| COMMON_EVENT_BLUETOOTH_HANDSFREEUNIT_AG_COMMON_EVENT | usual.event.bluetooth.handsfreeunit.AG_COMMON_EVENT | 无 | +| COMMON_EVENT_BLUETOOTH_HANDSFREEUNIT_AG_CALL_STATE_UPDATE | usual.event.bluetooth.handsfreeunit.AG_CALL_STATE_UPDATE | 无 | +| COMMON_EVENT_BLUETOOTH_HOST_STATE_UPDATE | usual.event.bluetooth.host.STATE_UPDATE | 无 | +| COMMON_EVENT_BLUETOOTH_HOST_REQ_DISCOVERABLE | usual.event.bluetooth.host.REQ_DISCOVERABLE | 无 | +| COMMON_EVENT_BLUETOOTH_HOST_REQ_ENABLE | usual.event.bluetooth.host.REQ_ENABLE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_HOST_REQ_DISABLE | usual.event.bluetooth.host.REQ_DISABLE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_HOST_SCAN_MODE_UPDATE | usual.event.bluetooth.host.SCAN_MODE_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_HOST_DISCOVERY_STARTED | usual.event.bluetooth.host.DISCOVERY_STARTED | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_HOST_DISCOVERY_FINISHED | usual.event.bluetooth.host.DISCOVERY_FINISHED | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_HOST_NAME_UPDATE | usual.event.bluetooth.host.NAME_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_A2DPSINK_CONNECT_STATE_UPDATE | usual.event.bluetooth.a2dpsink.CONNECT_STATE_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_A2DPSINK_PLAYING_STATE_UPDATE | usual.event.bluetooth.a2dpsink.PLAYING_STATE_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_BLUETOOTH_A2DPSINK_AUDIO_STATE_UPDATE | usual.event.bluetooth.a2dpsink.AUDIO_STATE_UPDATE | ohos.permission.USE_BLUETOOTH | +| COMMON_EVENT_NFC_ACTION_ADAPTER_STATE_CHANGED | usual.event.nfc.action.ADAPTER_STATE_CHANGED | 无 | +| COMMON_EVENT_NFC_ACTION_RF_FIELD_ON_DETECTED | usual.event.nfc.action.RF_FIELD_ON_DETECTED | ohos.permission.MANAGE_SECURE_SETTINGS | +| COMMON_EVENT_NFC_ACTION_RF_FIELD_OFF_DETECTED | usual.event.nfc.action.RF_FIELD_OFF_DETECTED | ohos.permission.MANAGE_SECURE_SETTINGS | +| COMMON_EVENT_DISCHARGING | usual.event.DISCHARGING | 无 | +| COMMON_EVENT_CHARGING | usual.event.CHARGING | 无 | +| COMMON_EVENT_DEVICE_IDLE_MODE_CHANGED | usual.event.DEVICE_IDLE_MODE_CHANGED | 无 | +| COMMON_EVENT_POWER_SAVE_MODE_CHANGED | usual.event.POWER_SAVE_MODE_CHANGED | 无 | +| COMMON_EVENT_USER_ADDED | usual.event.USER_ADDED | ohos.permission.MANAGE_USERS | +| COMMON_EVENT_USER_REMOVED | usual.event.USER_REMOVED | ohos.permission.MANAGE_USERS | +| COMMON_EVENT_ABILITY_ADDED | common.event.ABILITY_ADDED | ohos.permission.LISTEN_BUNDLE_CHANGE | +| COMMON_EVENT_ABILITY_REMOVED | common.event.ABILITY_REMOVED | ohos.permission.LISTEN_BUNDLE_CHANGE | +| COMMON_EVENT_ABILITY_UPDATED | common.event.ABILITY_UPDATED | ohos.permission.LISTEN_BUNDLE_CHANGE | +| COMMON_EVENT_LOCATION_MODE_STATE_CHANGED | usual.event.location.MODE_STATE_CHANGED | 无 | +| COMMON_EVENT_IVI_SLEEP | common.event.IVI_SLEEP | 无 | +| COMMON_EVENT_IVI_PAUSE | common.event.IVI_PAUSE | 无 | +| COMMON_EVENT_IVI_STANDBY | common.event.IVI_STANDBY | 无 | +| COMMON_EVENT_IVI_LASTMODE_SAVE | common.event.IVI_LASTMODE_SAVE | 无 | +| COMMON_EVENT_IVI_VOLTAGE_ABNORMAL | common.event.IVI_VOLTAGE_ABNORMAL | 无 | +| COMMON_EVENT_IVI_HIGH_TEMPERATURE | common.event.IVI_HIGH_TEMPERATURE | 无 | +| COMMON_EVENT_IVI_EXTREME_TEMPERATURE | common.event.IVI_EXTREME_TEMPERATURE | 无 | +| COMMON_EVENT_IVI_TEMPERATURE_ABNORMAL | common.event.IVI_TEMPERATURE_ABNORMAL | 无 | +| COMMON_EVENT_IVI_VOLTAGE_RECOVERY | common.event.IVI_VOLTAGE_RECOVERY | 无 | +| COMMON_EVENT_IVI_TEMPERATURE_RECOVERY | common.event.IVI_TEMPERATURE_RECOVERY | 无 | +| COMMON_EVENT_IVI_ACTIVE | common.event.IVI_ACTIVE | 无 | +| COMMON_EVENT_USB_DEVICE_ATTACHED | usual.event.hardware.usb.action.USB_DEVICE_ATTACHED | 无 | +| COMMON_EVENT_USB_DEVICE_DETACHED | usual.event.hardware.usb.action.USB_DEVICE_DETACHED | 无 | +| COMMON_EVENT_USB_ACCESSORY_ATTACHED | usual.event.hardware.usb.action.USB_ACCESSORY_ATTACHED | 无 | +| COMMON_EVENT_USB_ACCESSORY_DETACHED | usual.event.hardware.usb.action.USB_ACCESSORY_DETACHED | 无 | +| COMMON_EVENT_DISK_REMOVED | usual.event.data.DISK_REMOVED | ohos.permission.WRITE_USER_STORAGE or ohos.permission.READ_USER_STORAGE | +| COMMON_EVENT_DISK_UNMOUNTED | usual.event.data.DISK_UNMOUNTED | ohos.permission.WRITE_USER_STORAGEor ohos.permission.READ_USER_STORAGE | +| COMMON_EVENT_DISK_MOUNTED | usual.event.data.DISK_MOUNTED | ohos.permission.WRITE_USER_STORAGEor ohos.permission.READ_USER_STORAGE | +| COMMON_EVENT_DISK_BAD_REMOVAL | usual.event.data.DISK_BAD_REMOVAL | ohos.permission.WRITE_USER_STORAGEor ohos.permission.READ_USER_STORAGE | +| COMMON_EVENT_DISK_UNMOUNTABLE | usual.event.data.DISK_UNMOUNTABLE | ohos.permission.WRITE_USER_STORAGEor ohos.permission.READ_USER_STORAGE | +| COMMON_EVENT_DISK_EJECT | usual.event.data.DISK_EJECT | ohos.permission.WRITE_USER_STORAGEor ohos.permission.READ_USER_STORAGE | +| COMMON_EVENT_VISIBLE_ACCOUNTS_UPDATED | usual.event.data.VISIBLE_ACCOUNTS_UPDATED | ohos.permission.GET_APP_ACCOUNTS | +| COMMON_EVENT_ACCOUNT_DELETED | usual.event.data.ACCOUNT_DELETED | ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS | +| COMMON_EVENT_FOUNDATION_READY | common.event.FOUNDATION_READY | ohos.permission.RECEIVER_STARTUP_COMPLETED | +| COMMON_EVENT_AIRPLANE_MODE_CHANGED | usual.event.AIRPLANE_MODE | 无 | diff --git "a/zh-cn/application-dev/quick-start/Notification\345\274\200\345\217\221\346\214\207\345\215\227.md" "b/zh-cn/application-dev/quick-start/Notification\345\274\200\345\217\221\346\214\207\345\215\227.md" new file mode 100644 index 0000000000000000000000000000000000000000..90d8b38af5f7b7fd2d53d358d8d05841ddd7de69 --- /dev/null +++ "b/zh-cn/application-dev/quick-start/Notification\345\274\200\345\217\221\346\214\207\345\215\227.md" @@ -0,0 +1,1582 @@ + + +Notification开发指南 + +#### 简介 + +OpenHarmony通过ANS(Advanced Notification Service,通知系统服务)对通知类型的消息进行管理,支持多种通知类型,包括文本,长文本,多文本,图片,社交,媒体等。所有系统服务以及应用都可以通过通知接口发送通知消息,用户可以通过SystemUI查看所有通知消息。 + +通知常见的使用场景: + +- 显示接收到短消息、即时消息等。 +- 显示应用的推送消息,如广告、版本更新等。 +- 显示当前正在进行的事件,如导航、下载等。 + + + +#### 接口列表 + +| API | 手机 | 平板 | 智慧屏 | 智能穿戴 | +| ------------------------------------------------------------ | ---- | ---- | ------ | -------- | +| Notification.publish(request: NotificationRequest, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| Notification.publish(request: NotificationRequest) | 支持 | 支持 | 支持 | 支持 | +| Notification.cancel(id: number, label: string, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| Notification.cancel(id:number, label?:string) | 支持 | 支持 | 支持 | 支持 | +| Notification.cancel(id: number, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| Notification.cancelAll(callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| Notification.cancelAll() | 支持 | 支持 | 支持 | 支持 | +| Notification.addSlot(type: SlotType, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| Notification.addSlot(type: SlotType) | 支持 | 支持 | 支持 | 支持 | +| Notification.getSlot(slotType: SlotType, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| Notification.getSlot(slotType: SlotType) | 支持 | 支持 | 支持 | 支持 | +| Notification.getSlots(callback: AsyncCallback>) | 支持 | 支持 | 支持 | 支持 | +| Notification.getSlots() | 支持 | 支持 | 支持 | 支持 | +| Notification.removeSlot(slotType: SlotType, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| Notification.removeSlot(slotType: SlotType) | 支持 | 支持 | 支持 | 支持 | +| Notification.removeAllSlots(callback: AsyncCallback): void | 支持 | 支持 | 支持 | 支持 | +| Notification.removeAllSlots(): Promise | 支持 | 支持 | 支持 | 支持 | +| Notification.getActiveNotificationCount(callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| Notification.getActiveNotificationCount() | 支持 | 支持 | 支持 | 支持 | +| Notification.getActiveNotifications(callback: AsyncCallback>) | 支持 | 支持 | 支持 | 支持 | +| Notification.getActiveNotifications() | 支持 | 支持 | 支持 | 支持 | +| WantAgent.getWantAgent(info: WantAgentInfo, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| WantAgent.getWantAgent(info: WantAgentInfo): Promise | 支持 | 支持 | 支持 | 支持 | +| WantAgent.getBundleName(agent: WantAgent, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| WantAgent.getBundleName(agent: WantAgent): Promise | 支持 | 支持 | 支持 | 支持 | +| WantAgent.getUid(agent: WantAgent, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| WantAgent.getUid(agent: WantAgent): Promise | 支持 | 支持 | 支持 | 支持 | +| WantAgent.cancel(agent: WantAgent, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| WantAgent.cancel(agent: WantAgent): Promise | 支持 | 支持 | 支持 | 支持 | +| WantAgent.trigger(agent: WantAgent, triggerInfo: TriggerInfo, callback?: Callback) | 支持 | 支持 | 支持 | 支持 | +| WantAgent.equal(agent: WantAgent, otherAgent: WantAgent, callback: AsyncCallback) | 支持 | 支持 | 支持 | 支持 | +| WantAgent.equal(agent: WantAgent, otherAgent: WantAgent): Promise | 支持 | 支持 | 支持 | 支持 | + + + +#### Notification接口 + +##### 导入模块 + +```js +import Notification from '@ohos.notification'; +``` + + + +##### NotificationSlot类型说明 + +NotificationSlot可以对提示音、振动等进行设置。一个应用可以创建一个或多个NotificationSlot,在发布通知时,通过绑定不同的NotificationSlot,实现不同用途。 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| -------------------- | -------- | ------------- | ---- | ---------------------------- | +| type | 读、写 | SlotType | 是 | 通道类型 | +| level | 读、写 | SlotLevel | 否 | 通知级别 | +| desc | 读、写 | string | 否 | 通知渠道描述信息 | +| badgeFlag | 读、写 | boolean | 否 | 是否显示角标 | +| bypassDnd | 读、写 | boolean | 否 | 置是否在系统中绕过免打扰模式 | +| lockscreenVisibility | 读、写 | boolean | 否 | 在锁定屏幕上显示通知的模式 | +| vibrationEnabled | 读、写 | boolean | 否 | 是否可振动 | +| sound | 读、写 | string | 否 | 通知提示音 | +| lightEnabled | 读、写 | boolean | 否 | 是否闪灯 | +| lightColor | 读、写 | number | 否 | 通知灯颜色 | +| vibrationValues | 读、写 | Array | 否 | 通知振动样式 | + +- SlotType类型说明 + +| 名称 | 读写属性 | 类型 | 描述 | +| -------------------- | -------- | ---- | -------- | +| SOCIAL_COMMUNICATION | 只读 | enum | 社交类型 | +| SERVICE_INFORMATION | 只读 | enum | 服务类型 | +| CONTENT_INFORMATION | 只读 | enum | 内容类型 | +| OTHER_TYPES | 只读 | enum | 其他类型 | + +- SlotLevel类型说明 + +| 名称 | 读写属性 | 类型 | 描述 | +| ------------- | -------- | ---- | ------------------------------------------------------------ | +| LEVEL_NONE | 只读 | enum | 表示通知不发布 | +| LEVEL_MIN | 只读 | enum | 表示通知可以发布,但不在状态栏显示,不自动弹出,无提示音;该级别不适用于前台服务的场景 | +| LEVEL_LOW | 只读 | enum | 表示通知发布后在状态栏显示,不自动弹出,无提示音 | +| LEVEL_DEFAULT | 只读 | enum | 表示通知发布后在状态栏显示,不自动弹出,触发提示音 | +| LEVEL_HIGH | 只读 | enum | 表示通知发布后在状态栏显示,自动弹出,触发提示音 | + + + +##### NotificationRequest类型说明 + +NotificationRequest用于设置具体的通知对象,包括设置通知的属性,如:通知的分发时间、小图标、大图标、自动删除等参数,以及设置具体的通知类型,如普通文本、长文本等。 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ----------------- | -------- | ------------------------------- | ---- | -------------------------- | +| content | 读、写 | NotificationContent | 是 | 通知内容 | +| id | 读、写 | number | 否 | 通知ID | +| slotType | 读、写 | SlotType | 否 | 通道类型 | +| isOngoing | 读、写 | boolean | 否 | 是否进行时通知 | +| isUnremovable | 读、写 | boolean | 否 | 是否可移除 | +| deliveryTime | 读、写 | number | 否 | 通知发送时间 | +| tapDismissed | 读、写 | boolean | 否 | 通知是否自动清除 | +| autoDeletedTime | 读、写 | number | 否 | 自动清除的时间 | +| wantAgent | 读、写 | WantAgent | 否 | 点击跳转的WantAgent | +| extraInfo | 读、写 | {[key: string]: any} | 否 | 扩展参数 | +| color | 读、写 | number | 否 | 通知背景颜色 | +| colorEnabled | 读、写 | boolean | 否 | 通知背景颜色是否使能 | +| isAlertOnce | 读、写 | boolean | 否 | 设置是否仅有一次此通知警报 | +| isStopwatch | 读、写 | boolean | 否 | 是否显示已用时间 | +| isCountDown | 读、写 | boolean | 否 | 是否显示倒计时时间 | +| isFloatingIcon | 读、写 | boolean | 否 | 是否显示状态栏图标 | +| isFloatingIcon | 读、写 | boolean | 否 | 是否显示状态栏图标 | +| label | 读、写 | string | 否 | 通知标签 | +| badgeIconStyle | 读、写 | number | 否 | 通知角标类型 | +| showDeliveryTime | 读、写 | boolean | 否 | 是否显示分发时间 | +| actionButtons | 读、写 | Array | 否 | 通知按钮,最多两个按钮 | +| smallIcon | 读、写 | PixelMap | 否 | 通知小图标 | +| largeIcon | 读、写 | PixelMap | 否 | 通知大图标 | +| creatorBundleName | 只读 | string | 否 | 创建通知的包名 | +| creatorUid | 只读 | number | 否 | 创建通知的UID | +| creatorPid | 只读 | number | 否 | 创建通知的PID | +| hashCode | 只读 | string | 否 | 通知唯一标识 | + +- NotificationContent类型说明 + + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ----------- | -------- | ---------------------------- | ---- | -------------------- | +| contentType | 读、写 | ContentType | 是 | 通知内容类型 | +| normal | 读、写 | NotificationBasicContent | 否 | 普通类型通知内容 | +| longText | 读、写 | NotificationLongTextContent | 否 | 长文本类型通知内容 | +| multiLine | 读、写 | NotificationMultiLineContent | 否 | 多行文本类型通知内容 | +| picture | 读、写 | NotificationPictureContent | 否 | 图片类型通知内容 | + +- ContentType类型说明 + +| 名称 | 读写属性 | 类型 | 描述 | +| --------------------------------- | -------- | ---- | ---------------- | +| NOTIFICATION_CONTENT_BASIC_TEXT | 只读 | enum | 普通类型通知 | +| NOTIFICATION_CONTENT_LONG_TEXT | 只读 | enum | 长文本类型通知 | +| NOTIFICATION_CONTENT_PICTURE | 只读 | enum | 图片类型通知 | +| NOTIFICATION_CONTENT_CONVERSATION | 只读 | enum | 社交类型通知 | +| NOTIFICATION_CONTENT_MULTILINE | 只读 | enum | 多行文本类型通知 | + +- NotificationBasicContent类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| -------------- | -------- | ------ | ---- | -------------------------------- | +| title | 读、写 | string | 是 | 通知标题 | +| text | 读、写 | string | 是 | 通知内容 | +| additionalText | 读、写 | string | 是 | 通知次要内容,是对通知内容的补充 | + +- NotificationLongTextContent类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ------------- | -------- | ------ | ---- | ---------------------- | +| title | 读、写 | string | 是 | 通知标题 | +| text | 读、写 | string | 是 | 通知内容 | +| additionalText | 读、写 | string | 是 | 通知次要内容,是对通知内容的补充 | +| longText | 读、写 | string | 是 | 通知的长文本 | +| briefText | 读、写 | string | 是 | 通知概要内容,是对通知内容的总结 | +| expandedTitle | 读、写 | string | 是 | 通知展开时的标题 | + +- NotificationMultiLineContent类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| --------- | -------- | ------------- | ---- | ---------------------- | +| title | 读、写 | string | 是 | 通知标题 | +| text | 读、写 | string | 是 | 通知内容 | +| additionalText | 读、写 | string | 是 | 通知次要内容,是对通知内容的补充 | +| briefText | 读、写 | string | 是 | 通知概要内容,是对通知内容的总结 | +| longTitle | 读、写 | string | 是 | 通知展开时的标题 | +| lines | 读、写 | Array | 是 | 通知的多行文本 | + +- NotificationPictureContent类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| -------------- | -------- | -------------- | ---- | -------------------------------- | +| title | 读、写 | string | 是 | 通知标题 | +| text | 读、写 | string | 是 | 通知内容 | +| additionalText | 读、写 | string | 是 | 通知次要内容,是对通知内容的补充 | +| briefText | 读、写 | string | 是 | 通知概要内容,是对通知内容的总结 | +| expandedTitle | 读、写 | string | 是 | 通知展开时的标题 | +| picture | 读、写 | image.PixelMap | 是 | 通知的图片内容 | + +- NotificationActionButton类型说明 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| --------- | -------- | -------------- | ---- | ------------------------- | +| title | 读、写 | string | 是 | 按钮标题 | +| wantAgent | 读、写 | wantAgent | 是 | 点击按钮时触发的WantAgent | +| extras | 读、写 | Array | 否 | 按钮扩展信息 | +| icon | 读、写 | image.PixelMap | 否 | 按钮图标 | + + + +##### 创建通知通道 + +- 创建通知通道(callback形式) + + Notification.addSlot(type: SlotType, callback: AsyncCallback) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ------------------- | ---- | ---------------------- | + | type | 只读 | SlotType | 是 | 要创建的通知通道的类型 | + | callback | 只读 | AsyncCallback | 是 | 表示被指定的回调方法 | + + - 返回值 + + void + + - 示例代码 + + ```js + //addslot回调 + function addSlotCallBack(err) { + console.info("==========================>addSlotCallBack=======================>"); + } + Notification.addSlot(SOCIAL_COMMUNICATION, addSlotCallBack) + ``` + + + +- 创建通知通道(Promise形式) + + Notification.addSlot(type: SlotType) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ---- | -------- | -------- | ---- | ---------------------- | + | type | 只读 | SlotType | 是 | 要创建的通知通道的类型 | + + - 返回值 + + Promise<**void**> + + - 示例代码 + + ```js + Notification.addSlot(SOCIAL_COMMUNICATION).then((void) => { + console.info("==========================>addSlotCallback=======================>"); + }); + ``` + + + +##### 获取通知通道 + +- 获取一个通知通道(callback形式) + + Notification.getSlot(slotType: SlotType, callback: AsyncCallback) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ------------------------------- | ---- | ----------------------------------------------------------- | + | slotType | 只读 | slotType | 是 | 通知渠道类型,目前分为社交通信、服务提醒、内容咨询和其他类型 | + | callback | 只读 | AsyncCallback | 是 | 表示被指定的回调方法 | + + - 返回值 + + void + + - 示例代码 + + ```js + //getSlot回调 + function getSlotCallback(err,data) { + console.info("==========================>getSlotCallback=======================>"); + } + var slotType = SOCIAL_COMMUNICATION; + Notification.getSlot(slotType, getSlotCallback) + ``` + + + +- 获取一个通知通道(Promise形式) + + Notification.getSlot(slotType) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | -------- | ---- | ----------------------------------------------------------- | + | slotType | 只读 | slotType | 是 | 通知渠道类型,目前分为社交通信、服务提醒、内容咨询和其他类型 | + + - 返回值 + + Promise + + - 示例代码 + + ```js + var slotType = SOCIAL_COMMUNICATION; + Notification.getSlot(slotType).then((data) => { + console.info("==========================>getSlotCallback=======================>"); + }); + ``` + + + +- 获取本应用程序的所有通知通道(callback形式) + + Notification.getSlots(callback: AsyncCallback>) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ------------------------------- | ---- | -------------------- | + | callback | 只读 | AsyncCallback | 是 | 表示被指定的回调方法 | + + - 返回值 + + void + + - 示例代码 + + ```js + //getSlots回调 + function getSlotsCallback(err,data) { + console.info("==========================>getSlotsCallback=======================>"); + } + Notification.getSlots(getSlotsCallback) + ``` + + + +- 获取此应用程序的所有通知通道(Promise形式) + + Notification.getSlots() + + - 参数描述 + + 无参数 + + - 返回值 + + Promise> + + - 示例代码 + + ```js + Notification.getSlots().then((data) => { + console.info("==========================>getSlotsCallback=======================>"); + }); + ``` + + + +##### 删除通知通道 + +- 根据通知通道类型删除通知通道(callback形式) + + Notification.removeSlot(slotType: SlotType, callback: AsyncCallback) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ------------------- | ---- | ----------------------------------------------------------- | + | SlotType | 只读 | SlotType | 是 | 通知渠道类型,目前分为社交通信、服务提醒、内容咨询和其他类型 | + | callback | 只读 | AsyncCallback | 是 | 表示被指定的回调方法 | + + - 返回值 + + void + + - 示例代码 + + ```js + //removeSlot回调 + function removeSlotCallback(err) { + console.info("==========================>removeSlotCallback=======================>"); + } + var slotType = SOCIAL_COMMUNICATION; + Notification.removeSlot(slotType, removeSlotCallback) + ``` + + + +- 根据通知通道类型删除通知通道(Promise形式) + + Notification.removeSlot(slotType: SlotType) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | -------- | ---- | ----------------------------------------------------------- | + | SlotType | 只读 | SlotType | 是 | 通知渠道类型,目前分为社交通信、服务提醒、内容咨询和其他类型 | + + - 返回值 + + Promise<**void**> + + - 示例代码 + + ```js + var slotType = SOCIAL_COMMUNICATION; + Notification.removeSlot(slotType).then((void) => { + console.info("==========================>removeSlotCallback=======================>"); + }); + ``` + + + +- 删除所有通知通道(callback形式) + + Notification.removeAllSlots(callback: AsyncCallback) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ------------------- | ---- | -------------------- | + | callback | 只读 | AsyncCallback | 是 | 表示被指定的回调方法 | + + - 返回值 + + void + + - 示例代码 + + ```js + function removeAllSlotsCallBack(err) { + console.info("================>removeAllSlotsCallBack=======================>"); + } + Notification.removeAllSlots(removeAllCallBack) + ``` + + + +- 删除所有通知通道(Promise形式) + + Notification.removeAllSlots() + + - 参数描述 + + 无参数 + + - 返回值 + + Promise<**void**> + + - 示例代码 + + ```js + Notification.removeAllSlots().then((void) => { + console.info("==========================>removeAllSlotsCallBack=======================>"); + }); + ``` + + + +##### 发布通知 + +- 发布通知(callback形式) + + Notification.publish(request: NotificationRequest, callback: AsyncCallback) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ------------------- | ---- | ------------------------------------------- | + | request | 只读 | NotificationRequest | 是 | 设置要发布通知内容的NotificationRequest对象 | + | callback | 只读 | AsyncCallback | 是 | 被指定的回调方法 | + + - 返回值 + + void + + - 示例代码 + + ```js +//publish回调 +function publishCallback(err) { + console.info("==========================>publishCallback=======================>"); +} +//通知Request对象 +var request = { + id: 1, + content: { + contentType: notify.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT, + normal: { + title: "test_title", + text: "test_text", + additionalText: "test_additionalText" + } + } +} +Notification.publish(request, publishCallback); + ``` + + + +- 发布通知(Promise形式) + + Notification.publish(request: NotificationRequest) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ------- | -------- | ------------------- | ---- | ------------------------------------------- | + | request | 只读 | NotificationRequest | 是 | 设置要发布通知内容的NotificationRequest对象 | + + - 返回值 + + Promise<**void**> + + - 示例代码 + + ```js + //通知Request对象 + var notificationRequest = { + notificationId: 1, + content: { + contentType: notify.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT, + normal: { + title: "test_title", + text: "test_text", + additionalText: "test_additionalText" + } + } + } + Notification.publish(notificationRequest).then((void) => { + console.info("==========================>publishCallback=======================>"); + }); + ``` + + + +##### 取消通知 + +- 取消指定通知(callback形式) + + Notification.cancel(id: number, label: string, callback: AsyncCallback) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ------------------- | ---- | -------------------- | + | id | 只读 | number | 是 | 通知ID | + | lable | 只读 | string | 是 | 通知标签 | + | callback | 只读 | AsyncCallback | 是 | 表示被指定的回调方法 | + + - 返回值 + + void + + - 示例代码 + + ```js + //cancel回调 + function cancelCallback(err) { + console.info("==========================>cancelCallback=======================>"); + } + Notification.cancel(0, "label", cancelCallback) + ``` + + + +- 取消指定通知(Promise形式) + + Notification.cancel(id:number, label?:string) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ----- | -------- | ------ | ---- | -------- | + | id | 只读 | number | 是 | 通知ID | + | lable | 只读 | string | 是 | 通知标签 | + + - 返回值 + + Promise<**void**> + + - 示例代码 + + ```js + Notification.cancel(0).then((void) => { + console.info("==========================>cancelCallback=======================>"); + }); + ``` + + + +- 取消指定id通知(callback形式) + + Notification.cancel(id: number, callback: AsyncCallback) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ------------------- | ---- | -------------------- | + | id | 只读 | number | 是 | 通知ID | + | callback | 只读 | AsyncCallback | 是 | 表示被指定的回调方法 | + + - 返回值 + + void + + - 示例代码 + + ```js + //cancel回调 + function cancelCallback(err) { + console.info("==========================>cancelCallback=======================>"); + } + Notification.cancel(0, cancelCallback) + ``` + + + +- 取消所有已发布的通知(callback形式) + + Notification.cancelAll(callback: AsyncCallback) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ------------------- | ---- | -------------------- | + | callback | 只读 | AsyncCallback | 是 | 表示被指定的回调方法 | + + - 返回值 + + void + + - 示例代码 + + ```js + //cancel回调 + function cancelAllback(err) { + console.info("==========================>cancelAllback=======================>"); + } + Notification.cancelAll(cancelCallback) + ``` + + + +- 取消所有已发布的通知(Promise形式) + + Notification.cancelAll() + + - 参数描述 + + 无参数 + + - 返回值 + + Promise + + - 示例代码 + + ```js +Notification.cancelAll().then((void) => { + console.info("==========================>cancelAllback=======================>"); +}); + ``` + + + +##### 获取当前应用活动通知 + +- 获取当前应用的活动通知数(Callback形式) + + Notification.getActiveNotificationCount(callback: AsyncCallback<**number**>) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ------------------------- | ---- | ---------------------- | + | callback | 只读 | AsyncCallback<**number**> | 是 | 获取活动通知数回调函数 | + + - 返回值 + + void + + - 示例代码 + + ```js + function getActiveNotificationCountCallback(err, data) { + console.info("==========================>getActiveNotificationCountCallback=======================>"); + } + Notification.getActiveNotificationCount(getActiveNotificationCountCallback); + ``` + + + +- 获取当前应用的活动通知数(Promise形式) + + Notification.getActiveNotificationCount() + + - 参数描述 + + 无 + + - 返回值 + + Promise<**number**> + + - 示例代码 + + ```js + Notification.getActiveNotificationCount().then((data) => { + console.info("==========================>getActiveNotificationCountCallback=======================>"); + }); + ``` + + + +- 获取当前应用的活动通知(Callback形式) + + Notification.getActiveNotifications(callback: AsyncCallback>) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ----------------------------------------- | ---- | ------------------------------ | + | callback | 只读 | AsyncCallback> | 是 | 获取当前应用的活动通知回调函数 | + + - 返回值 + + void + + - 示例代码 + + ```js + function getActiveNotificationsCallback(err, data) { + console.info("==========================>getActiveNotificationsCallback=======================>"); + } + Notification.getActiveNotifications(getActiveNotificationsCallback); + ``` + + + +- 获取当前应用的活动通知(Promise形式) + + Notification.getActiveNotifications() + + - 参数描述 + + 无 + + - 返回值 + + Promise> + + - 示例代码 + + ```js + Notification.getActiveNotifications().then((data) => { + console.info("==========================>getActiveNotificationsCallback=======================>"); + }); + ``` + + + +#### WantAgent接口 + +##### 导入模块 + +```js +import WantAgent from '@ohos.wantAgent'; +``` + + + +##### WantAgentInfo类型说明 + +WantAgentInfo类封装了获取一个WantAgent实例所需的数据。 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| -------------- | -------- | ------------------------------- | ---- | ---------------------- | +| wants | 读、写 | Array | 是 | 将被执行的动作列表 | +| operationType | 读、写 | wantAgent.OperationType | 是 | 动作类型 | +| requestCode | 读、写 | number | 是 | 使用者定义的一个私有值 | +| wantAgentFlags | 读、写 | Array | 否 | 动作执行属性 | +| extraInfo | 读、写 | {[key: string]: any} | 否 | 额外数据 | + +- OperationType类型说明 + +| 名称 | 读写属性 | 类型 | 描述 | +| ----------------- | -------- | ---- | ----------------------- | +| UNKNOWN_TYPE | 只读 | enum | 不识别的类型 | +| START_ABILITY | 只读 | enum | 开启一个有页面的Ability | +| START_ABILITIES | 只读 | enum | 开启多个有页面的Ability | +| START_SERVICE | 只读 | enum | 开启一个无页面的ability | +| SEND_COMMON_EVENT | 只读 | enum | 发送一个公共事件 | + +- WantAgentFlags类型说明 + + +| 名称 | 读写属性 | 类型 | 描述 | +| ------------------- | -------- | ---- | ------------------------------------------------------------ | +| ONE_TIME_FLAG | 只读 | enum | WantAgent仅能使用一次 | +| NO_BUILD_FLAG | 只读 | enum | 如果描述WantAgent对象不存在,则不创建它,直接返回null | +| CANCEL_PRESENT_FLAG | 只读 | enum | 在生成一个新的WantAgent对象前取消已存在的一个WantAgent对象 | +| UPDATE_PRESENT_FLAG | 只读 | enum | 使用新的WantAgent的额外数据替换已存在的WantAgent中的额外数据 | +| CONSTANT_FLAG | 只读 | enum | WantAgent是不可变的 | +| REPLACE_ELEMENT | 只读 | enum | 当前Want中的element属性可被WantAgent.trigger()中Want的element属性取代 | +| REPLACE_ACTION | 只读 | enum | 当前Want中的action属性可被WantAgent.trigger()中Want的action属性取代 | +| REPLACE_URI | 只读 | enum | 当前Want中的uri属性可被WantAgent.trigger()中Want的uri属性取代 | +| REPLACE_ENTITIES | 只读 | enum | 当前Want中的entities属性可被WantAgent.trigger()中Want的entities属性取代 | +| REPLACE_BUNDLE | 只读 | enum | 当前Want中的bundleName属性可被WantAgent.trigger()中Want的bundleName属性取代 | + + + +##### TriggerInfo类型说明 + +TriggerInfo类封装了主动激发一个WantAgent实例所需的数据。 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ---------- | -------- | -------------------- | ---- | ----------- | +| code | 读、写 | number | 是 | result code | +| want | 读、写 | Want | 否 | Want | +| permission | 读、写 | string | 否 | 权限定义 | +| extraInfo | 读、写 | {[key: string]: any} | 否 | 额外数据 | + + + +##### 创建WantAgent + +- 创建WantAgent(callback形式) + + WantAgent.getWantAgent(info: WantAgentInfo, callback: AsyncCallback) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ------------------------ | ---- | ----------------------- | + | info | 只读 | WantAgentInfo | 是 | WantAgent信息 | + | callback | 只读 | AsyncCallback | 是 | 创建WantAgent的回调方法 | + - 返回值 + + void + + - 示例代码 + + ```js +import wantAgent from '@ohos.wantAgent'; +import { OperationType, Flags } from '@ohos.wantagent'; +//getWantAgent回调 +function getWantAgentCallback(err, data) { + console.info("==========================>getWantAgentCallback=======================>"); +} +//WantAgentInfo对象 +var wantAgentInfo = { + wants: [ + { + deviceId: "deviceId", + bundleName: "com.neu.setResultOnAbilityResultTest1", + abilityName: "com.example.test.MainAbility", + action: "action1", + entities: ["entity1"], + type: "MIMETYPE", + uri: "key={true,true,false}", + parameters: + { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [false, true, false], + mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey6: true, + } + } + ], + operationType: OperationType.START_ABILITIES, + requestCode: 0, + wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] +} +wantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback) + ``` + + + +- 创建WantAgent(Promise形式) + + WantAgent.getWantAgent(info: WantAgentInfo): Promise + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ---- | -------- | ------------- | ---- | ------------- | + | info | 只读 | WantAgentInfo | 是 | WantAgent信息 | + - 返回值 + + Promise + + - 示例代码 + + ```js +import wantAgent from '@ohos.wantAgent'; +import { OperationType, Flags } from '@ohos.wantagent'; +//WantAgentInfo对象 +var wantAgentInfo = { + wants: [ + { + deviceId: "deviceId", + bundleName: "com.neu.setResultOnAbilityResultTest1", + abilityName: "com.example.test.MainAbility", + action: "action1", + entities: ["entity1"], + type: "MIMETYPE", + uri: "key={true,true,false}", + parameters: + { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [false, true, false], + mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey6: true, + } + } + ], + operationType: OperationType.START_ABILITIES, + requestCode: 0, + wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] +} +wantAgent.getWantAgent(wantAgentInfo).then((data) => { + console.info("==========================>getWantAgentCallback=======================>"); +}); + ``` + + + +##### 获取WantAgent实例的包名 + +- 获取WantAgent实例的包名(callback形式) + + WantAgent.getBundleName(agent: WantAgent, callback: AsyncCallback) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | --------------------- | ---- | ---------------------------------------- | + | agent | 只读 | WantAgent | 是 | WantAgent对象 | + | callback | 只读 | AsyncCallback | 是 | 获取WantAgent指定的bundle name的回调方法 | + + - 返回值 + + void + + - 示例代码 + + ```js +import wantAgent from '@ohos.wantAgent'; +import { OperationType, Flags } from '@ohos.wantagent'; +//wantAgent对象 +var WantAgent; +//getWantAgent回调 +function getWantAgentCallback(err, data) { + console.info("==========================>getWantAgentCallback=======================>"); + if (err.code == 0) { + WantAgent = data; + } else { + console.info('----getWantAgent failed!----'); + } +} +//WantAgentInfo对象 +var wantAgentInfo = { + wants: [ + { + deviceId: "deviceId", + bundleName: "com.neu.setResultOnAbilityResultTest1", + abilityName: "com.example.test.MainAbility", + action: "action1", + entities: ["entity1"], + type: "MIMETYPE", + uri: "key={true,true,false}", + parameters: + { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [false, true, false], + mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey6: true, + } + } + ], + operationType: OperationType.START_ABILITIES, + requestCode: 0, + wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] +} +wantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback) +//getBundleName回调 +function getBundleNameCallback(err, data) { + console.info("==========================>getBundleNameCallback=======================>"); +} +wantAgent.getBundleName(WantAgent, getBundleNameCallback) + ``` + + + +- 获取WantAgent实例的包名(Promise形式) + + WantAgent.getBundleName(agent: WantAgent): Promise + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ----- | -------- | --------- | ---- | ------------- | + | agent | 只读 | WantAgent | 是 | WantAgent对象 | + - 返回值 + + Promise + + - 示例代码 + + ```js + import wantAgent from '@ohos.wantAgent'; + import { OperationType, Flags } from '@ohos.wantagent'; + //wantAgent对象 + var WantAgent; + //WantAgentInfo对象 + var wantAgentInfo = { + wants: [ + { + deviceId: "deviceId", + bundleName: "com.neu.setResultOnAbilityResultTest1", + abilityName: "com.example.test.MainAbility", + action: "action1", + entities: ["entity1"], + type: "MIMETYPE", + uri: "key={true,true,false}", + parameters: + { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [false, true, false], + mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey6: true, + } + } + ], + operationType: OperationType.START_ABILITIES, + requestCode: 0, + wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] + } + wantAgent.getWantAgent(wantAgentInfo).then((data) => { + console.info("==========================>getWantAgentCallback=======================>"); + WantAgent = data; + }); + wantAgent.getBundleName(WantAgent).then((data) => { + console.info("==========================>getBundleNameCallback=======================>"); + }); + ``` + + + + +##### 获取WantAgent实例的用户ID + +- 获取WantAgent实例的用户ID(callback形式) + + WantAgent.getUid(agent: WantAgent, callback: AsyncCallback) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | --------------------- | ---- | ----------------------------------- | + | agent | 只读 | WantAgent | 是 | WantAgent对象 | + | callback | 只读 | AsyncCallback | 是 | 获取WantAgent实例的用户ID的回调方法 | + - 返回值 + + void + + - 示例代码 + + ```js + import wantAgent from '@ohos.wantAgent'; + import { OperationType, Flags } from '@ohos.wantagent'; + + //wantAgent对象 + var WantAgent; + + //getWantAgent回调 + function getWantAgentCallback(err, data) { + console.info("==========================>getWantAgentCallback=======================>"); + if (err.code == 0) { + WantAgent = data; + } else { + console.info('----getWantAgent failed!----'); + } + } + //WantAgentInfo对象 + var wantAgentInfo = { + wants: [ + { + deviceId: "deviceId", + bundleName: "com.neu.setResultOnAbilityResultTest1", + abilityName: "com.example.test.MainAbility", + action: "action1", + entities: ["entity1"], + type: "MIMETYPE", + uri: "key={true,true,false}", + parameters: + { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [false, true, false], + mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey6: true, + } + } + ], + operationType: OperationType.START_ABILITIES, + requestCode: 0, + wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] + } + + wantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback) + + //getUid回调 + function getUidCallback(err, data) { + console.info("==========================>getUidCallback=======================>"); + } + wantAgent.getUid(WantAgent, getUidCallback) + ``` + + + +- 获取WantAgent实例的用户ID(Promise形式) + + WantAgent.getUid(agent: WantAgent): Promise + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ----- | -------- | --------- | ---- | ------------- | + | agent | 只读 | WantAgent | 是 | WantAgent对象 | + - 返回值 + + Promise + + - 示例代码 + + ```js + import wantAgent from '@ohos.wantAgent'; + import { OperationType, Flags } from '@ohos.wantagent'; + + //wantAgent对象 + var WantAgent; + + //WantAgentInfo对象 + var wantAgentInfo = { + wants: [ + { + deviceId: "deviceId", + bundleName: "com.neu.setResultOnAbilityResultTest1", + abilityName: "com.example.test.MainAbility", + action: "action1", + entities: ["entity1"], + type: "MIMETYPE", + uri: "key={true,true,false}", + parameters: + { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [false, true, false], + mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey6: true, + } + } + ], + operationType: OperationType.START_ABILITIES, + requestCode: 0, + wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] + } + + wantAgent.getWantAgent(wantAgentInfo).then((data) => { + console.info("==========================>getWantAgentCallback=======================>"); + WantAgent = data; + }); + + wantAgent.getUid(WantAgent).then((data) => { + console.info("==========================>getUidCallback=======================>"); + }); + ``` + + + +##### 取消WantAgent实例 + +- 取消WantAgent实例(callback形式) + + WantAgent.cancel(agent: WantAgent, callback: AsyncCallback) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | -------- | -------- | ------------------- | ---- | --------------------------- | + | agent | 只读 | WantAgent | 是 | WantAgent对象 | + | callback | 只读 | AsyncCallback | 是 | 取消WantAgent实例的回调方法 | + - 返回值 + + void + + - 示例代码 + + ```js + import wantAgent from '@ohos.wantAgent'; + import { OperationType, Flags } from '@ohos.wantagent'; + + //wantAgent对象 + var WantAgent; + + //getWantAgent回调 + function getWantAgentCallback(err, data) { + console.info("==========================>getWantAgentCallback=======================>"); + if (err.code == 0) { + WantAgent = data; + } else { + console.info('----getWantAgent failed!----'); + } + } + //WantAgentInfo对象 + var wantAgentInfo = { + wants: [ + { + deviceId: "deviceId", + bundleName: "com.neu.setResultOnAbilityResultTest1", + abilityName: "com.example.test.MainAbility", + action: "action1", + entities: ["entity1"], + type: "MIMETYPE", + uri: "key={true,true,false}", + parameters: + { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [false, true, false], + mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey6: true, + } + } + ], + operationType: OperationType.START_ABILITIES, + requestCode: 0, + wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] + } + + wantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback) + + //cancel回调 + function cancelCallback(err, data) { + console.info("==========================>cancelCallback=======================>"); + } + wantAgent.cancel(WantAgent, cancelCallback) + ``` + + + +- 取消WantAgent实例(Promise形式) + + WantAgent.cancel(agent: WantAgent): Promise + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ----- | -------- | --------- | ---- | ------------- | + | agent | 只读 | WantAgent | 是 | WantAgent对象 | + - 返回值 + + Promise + + - 示例代码 + + ```js + import wantAgent from '@ohos.wantAgent'; + import { OperationType, Flags } from '@ohos.wantagent'; + + //wantAgent对象 + var WantAgent; + + //WantAgentInfo对象 + var wantAgentInfo = { + wants: [ + { + deviceId: "deviceId", + bundleName: "com.neu.setResultOnAbilityResultTest1", + abilityName: "com.example.test.MainAbility", + action: "action1", + entities: ["entity1"], + type: "MIMETYPE", + uri: "key={true,true,false}", + parameters: + { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [false, true, false], + mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey6: true, + } + } + ], + operationType: OperationType.START_ABILITIES, + requestCode: 0, + wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] + } + + wantAgent.getWantAgent(wantAgentInfo).then((data) => { + console.info("==========================>getWantAgentCallback=======================>"); + WantAgent = data; + }); + + wantAgent.cancel(WantAgent).then((data) => { + console.info("==========================>cancelCallback=======================>"); + }); + ``` + + + + +##### 主动激发WantAgent实例 + +- 主动激发WantAgent实例(callback形式) + + WantAgent.trigger(agent: WantAgent, triggerInfo: TriggerInfo, callback?: Callback) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ----------- | -------- | --------------------------- | ---- | ------------------------------- | + | agent | 只读 | WantAgent | 是 | WantAgent对象 | + | triggerInfo | 只读 | TriggerInfo | 是 | TriggerInfo对象 | + | callback | 只读 | AsyncCallback | 是 | 主动激发WantAgent实例的回调方法 | + - 返回值 + + void + + - 示例代码 + + ```js + import wantAgent from '@ohos.wantAgent'; + import { OperationType, Flags } from '@ohos.wantagent'; + + //wantAgent对象 + var WantAgent; + + //getWantAgent回调 + function getWantAgentCallback(err, data) { + console.info("==========================>getWantAgentCallback=======================>"); + if (err.code == 0) { + WantAgent = data; + } else { + console.info('----getWantAgent failed!----'); + } + } + //WantAgentInfo对象 + var wantAgentInfo = { + wants: [ + { + deviceId: "deviceId", + bundleName: "com.neu.setResultOnAbilityResultTest1", + abilityName: "com.example.test.MainAbility", + action: "action1", + entities: ["entity1"], + type: "MIMETYPE", + uri: "key={true,true,false}", + parameters: + { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [false, true, false], + mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey6: true, + } + } + ], + operationType: OperationType.START_ABILITIES, + requestCode: 0, + wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] + } + + wantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback) + + //cancel回调 + function triggerCallback(err, data) { + console.info("==========================>triggerCallback=======================>"); + } + wantAgent.trigger(WantAgent, triggerCallback) + ``` + + + + +##### 判断两个WantAgent实例是否相等 + +- 判断两个WantAgent实例是否相等(callback形式) + + WantAgent.equal(agent: WantAgent, otherAgent: WantAgent, callback: AsyncCallback) + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ---------- | -------- | ---------------------- | ---- | --------------------------------------- | + | agent | 只读 | WantAgent | 是 | WantAgent对象 | + | otherAgent | 只读 | WantAgent | 是 | WantAgent对象 | + | callback | 只读 | AsyncCallback | 是 | 判断两个WantAgent实例是否相等的回调方法 | + - 返回值 + + void + + - 示例代码 + + ```js + import wantAgent from '@ohos.wantAgent'; + import { OperationType, Flags } from '@ohos.wantagent'; + + //wantAgent对象 + var WantAgent1; + var WantAgent2; + + //getWantAgent回调 + function getWantAgentCallback(err, data) { + console.info("==========================>getWantAgentCallback=======================>"); + if (err.code == 0) { + WantAgent1 = data; + WantAgent2 = data; + } else { + console.info('----getWantAgent failed!----'); + } + } + //WantAgentInfo对象 + var wantAgentInfo = { + wants: [ + { + deviceId: "deviceId", + bundleName: "com.neu.setResultOnAbilityResultTest1", + abilityName: "com.example.test.MainAbility", + action: "action1", + entities: ["entity1"], + type: "MIMETYPE", + uri: "key={true,true,false}", + parameters: + { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [false, true, false], + mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey6: true, + } + } + ], + operationType: OperationType.START_ABILITIES, + requestCode: 0, + wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] + } + + wantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback) + + //cancel回调 + function equalCallback(err, data) { + console.info("==========================>equalCallback=======================>"); + } + wantAgent.equal(WantAgent1, WantAgent1, equalCallback) + ``` + + + +- 判断两个WantAgent实例是否相等(Promise形式) + + WantAgent.equal(agent: WantAgent, otherAgent: WantAgent): Promise + + - 参数描述 + + | 名称 | 读写属性 | 类型 | 必填 | 描述 | + | ---------- | -------- | --------- | ---- | ------------- | + | agent | 只读 | WantAgent | 是 | WantAgent对象 | + | otherAgent | 只读 | WantAgent | 是 | WantAgent对象 | + - 返回值 + + Promise + + - 示例代码 + + ```js + import wantAgent from '@ohos.wantAgent'; + import { OperationType, Flags } from '@ohos.wantagent'; + + //wantAgent对象 + var WantAgent1; + var WantAgent2; + + //WantAgentInfo对象 + var wantAgentInfo = { + wants: [ + { + deviceId: "deviceId", + bundleName: "com.neu.setResultOnAbilityResultTest1", + abilityName: "com.example.test.MainAbility", + action: "action1", + entities: ["entity1"], + type: "MIMETYPE", + uri: "key={true,true,false}", + parameters: + { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [false, true, false], + mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey6: true, + } + } + ], + operationType: OperationType.START_ABILITIES, + requestCode: 0, + wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] + } + + wantAgent.getWantAgent(wantAgentInfo).then((data) => { + console.info("==========================>getWantAgentCallback=======================>"); + WantAgent = data; + }); + + wantAgent.equal(WantAgent1, WantAgent2).then((data) => { + console.info("==========================>equalCallback=======================>"); + }); + ``` + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/zh-cn/device-dev/subsystems/subsys-densor-demo.md b/zh-cn/device-dev/subsystems/subsys-densor-demo.md old mode 100755 new mode 100644