HarmonyOS 通過 CES(Common Event Service,公共事件服務(wù))為應(yīng)用程序提供訂閱、發(fā)布、退訂公共事件的能力,通過 ANS(Advanced Notification Service,即高級通知服務(wù))系統(tǒng)服務(wù)來為應(yīng)用程序提供發(fā)布通知的能力。
- 公共事件可分為系統(tǒng)公共事件和自定義公共事件。
- 系統(tǒng)公共事件:系統(tǒng)將收集到的事件信息,根據(jù)系統(tǒng)策略發(fā)送給訂閱該事件的用戶程序。 例如:用戶可感知亮滅屏事件,系統(tǒng)關(guān)鍵服務(wù)發(fā)送的系統(tǒng)事件(例如:USB 插拔,網(wǎng)絡(luò)連接,系統(tǒng)升級等)。
- 自定義公共事件:應(yīng)用自定義一些公共事件用來處理業(yè)務(wù)邏輯。
- 通知提供應(yīng)用的即時消息或通信消息,用戶可以直接刪除或點擊通知觸發(fā)進一步的操作。
- IntentAgent 封裝了一個指定行為的 Intent,可以通過 IntentAgent 啟動 Ability 和發(fā)送公共事件。
應(yīng)用如果需要接收公共事件,需要訂閱相應(yīng)的事件。
約束與限制
公共事件的約束與限制
- 目前公共事件僅支持動態(tài)訂閱。部分系統(tǒng)事件需要具有指定的權(quán)限,具體的權(quán)限見API參考。
- 目前公共事件訂閱不支持多用戶。
- ThreadMode 表示線程模型,目前僅支持 HANDLER 模式,即在當前 UI 線程上執(zhí)行回調(diào)函數(shù)。
- deviceId 用來指定訂閱本地公共事件還是遠端公共事件。deviceId 為 null、空字符串或本地設(shè)備 deviceId 時,表示訂閱本地公共事件,否則表示訂閱遠端公共事件。
通知的約束與限制
- 通知目前支持六種樣式:普通文本、長文本、圖片、社交、多行文本和媒體樣式。創(chuàng)建通知時必須包含一種樣式。
- 通知支持快捷回復(fù)。
- 目前通知訂閱不支持多用戶。
- 通知的訂閱目前僅支持系統(tǒng)應(yīng)用,不支持第三方應(yīng)用。
IntentAgent 的限制
使用 IntentAgent 啟動 Ability 時,Intent 必須指定 Ability 的包名和類名。
更多建議: