codecamp

鸿蒙OS 公共事件与通知的概述

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

鸿蒙OS 发布式任务调度开发指导
鸿蒙OS 公共事件开发指导
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

鸿蒙OS 开发

鸿蒙OS 术语

鸿蒙OS Java API参考

鸿蒙OS ohos.aafwk.ability

鸿蒙OS ohos.aafwk.abilityjet.activedata

鸿蒙OS ohos.aafwk.content

鸿蒙OS java.lang

鸿蒙OS java.Util

鸿蒙OS java.Util class

鸿蒙OS ohos.data.dataability

鸿蒙OS ohos.data.dataability class

鸿蒙OS ohos.agp.components

鸿蒙OS ohos.agp.components interface

鸿蒙OS ohos.agp.components class

鸿蒙OS ohos.global.configuration

鸿蒙OS java.io

鸿蒙OS ohos.data.resultset

鸿蒙OS ohos.data.resultset interface

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }