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的包名和类名。