HarmonyOS 通过 CES(Common Event Service,公共事件服务)为应用程序提供订阅、发布、退订公共事件的能力,通过 ANS(Advanced Notification Service,即高级通知服务)系统服务来为应用程序提供发布通知的能力。
- 系统公共事件:系统将收集到的事件信息,根据系统策略发送给订阅该事件的用户程序。 例如:用户可感知亮灭屏事件,系统关键服务发送的系统事件(例如:USB 插拔,网络连接,系统升级等)。
- 自定义公共事件:应用自定义一些公共事件用来处理业务逻辑。
- 通知提供应用的即时消息或通信消息,用户可以直接删除或点击通知触发进一步的操作。
- IntentAgent 封装了一个指定行为的 Intent,可以通过 IntentAgent 启动 Ability 和发送公共事件。
应用如果需要接收公共事件,需要订阅相应的事件。
约束与限制
公共事件的约束与限制
- 目前公共事件仅支持动态订阅。部分系统事件需要具有指定的权限,具体的权限见API参考。
- 目前公共事件订阅不支持多用户。
- ThreadMode 表示线程模型,目前仅支持 HANDLER 模式,即在当前 UI 线程上执行回调函数。
- deviceId 用来指定订阅本地公共事件还是远端公共事件。deviceId 为 null、空字符串或本地设备 deviceId 时,表示订阅本地公共事件,否则表示订阅远端公共事件。
通知的约束与限制
- 通知目前支持六种样式:普通文本、长文本、图片、社交、多行文本和媒体样式。创建通知时必须包含一种样式。
- 通知支持快捷回复。
- 目前通知订阅不支持多用户。
- 通知的订阅目前仅支持系统应用,不支持第三方应用。
IntentAgent 的限制
使用 IntentAgent 启动 Ability 时,Intent 必须指定 Ability 的包名和类名。