色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

OpenHarmony靜態訂閱應用

OpenHarmony技術社區 ? 來源:OpenHarmony技術社區 ? 2023-04-25 11:36 ? 次閱讀

本文將介紹如何在 OpenHarmony 中使用靜態訂閱公共事件。

靜態訂閱者在未接收訂閱的目標事件時,處于未拉起狀態,當系統或應用發布了指定的公共事件后,靜態訂閱者將被拉起,并執行 onReceiveEvent 回調。

開發者可通過在 onReceiveEvent 回調中執行業務邏輯,實現當應用接收到特定公共事件時執行業務邏輯的目的。

例如,某應用希望在設備開機的時候執行一些初始化任務,那么該應用可以靜態訂閱開機事件,在收到開機事件后會拉起該應用,然后執行初始化任務。

設備與環境:

  • 設備:九聯 s905l3a 機頂盒

  • 系統:OpenHarmony 3.2 beta2

  • SDK:API 9(Full SDK)

實現過程

①聲明靜態訂閱者

打開 DevEco Studio 創建一個新的 Stage 工程,在工程中新建一個目錄 StaticSubscriber。

然后在該目錄下面新建一個 ExtensionAbility 的 ets 文件,并讓該 ExtensionAbility 從 StaticSubscriberExtensionAbility 派生。

e91552b6-e307-11ed-ab56-dac502259ad0.png

我們可以在 onReceiveEvent(event){ }中實現自己的業務邏輯,在這里我們實現通過訂閱開機公共事件,來啟動定時器,在日志中打印信息
importStaticSubscriberExtensionAbilityfrom'@ohos.application.StaticSubscriberExtensionAbility'
importLoggerfrom'../model/Logger'

exportdefaultclassStaticSubscriberextendsStaticSubscriberExtensionAbility{
num:number=0
onReceiveEvent(event){
Logger.info(`rgytl ----監聽到公共的事件為:${event.event}`)
setInterval(()=>{
this.num=this.num+1
Logger.info("rgytl----num="+this.num)
},1000)
}
}

②靜態訂閱者工程配置

在完成靜態訂閱者的代碼實現后,需要將該訂閱者配置到系統的 module.json5 中,配置形式如下:

{
"module":{
......
"extensionAbilities":[
{
"name":"StaticSubscriber",
"srcEntrance":"./ets/StaticSubscriber/StaticSubscriber.ts",
"description":"$string:StaticSubscriber_desc",
"icon":"$media:icon",
"label":"$string:StaticSubscriber_label",
"type":"staticSubscriber",
"visible":true,
"metadata":[
{
"name":"ohos.extension.staticSubscriber",
"resource":"$profile:subscribe"
}
]
}
],
......
}
}
上述 json 文件主要關注以下字段:srcEntrance:表示 ExtensionAbility 的入口文件路徑,即步驟 2 中聲明的靜態訂閱者所在的文件路徑,也就是我們剛剛創建的目錄文件。type:表示 ExtensionAbility 的類型,對于靜態訂閱者需要聲明為 “staticSubscriber”。metadata:表示 ExtensionAbility 的二級配置文件信息。由于不同的 ExtensionAbility 類型其配置信息不盡相同,因此需要使用不同的 config 文件表示其具體配置信息。name:表示 ExtensionAbility 的類型名稱,對于靜態訂閱類型,name 必須聲明為“ohos.extension.staticSubscriber”,否則無法識別為靜態訂閱者。resource:字段表示 ExtensionAbility 的配置信息路徑,由開發者自行定義,在本例中表示路徑為“resources/base/profile/subscribe.json"。

metadata 指向的二級配置文件的通常形式如下:

{
"commonEvents":[
{
"name":"xxx",
"permission":"xxx",
"events":[
"xxx"
]
}
]
}
需要注意二級配置文件必須按照此形式進行聲明,否則會無法正確識別。下面對字段進行介紹:name:靜態訂閱 ExtensionAbility 的名稱,需要和 module.json5 中聲明的 ExtensionAbility 的 name 一致。permission:訂閱者要求的發布者需要具備的權限,對于發布了目標事件但不具備 permission 中聲明的權限的發布者將被視為非法事件不予發布。events:訂閱的目標事件列表。

在這里我監聽的是開機事件和系統事件流逝時間:

{
"commonEvents":[
{
"name":"StaticSubscriber",
"permission":"",
"events":[
"usual.event.TIME_TICK",
"usual.event.BOOT_COMPLETED"
]
}
]
}
不知道是不是系統 bug,在 permission 字段添加權限的時候,會導致應用無法成功啟動,使用就把權限去掉了。

③應用安裝

首先,修改 OpenHarmony SDK toolchains lib 目錄下面的 UnsgnedReleasedProfileTemplate.json 文件的 apl 字段,將 apl 字段改成 system_basic 或 system_core。

"bundle-info":{
"developer-id":"OpenHarmony",
"distribution-certificate":"xxxxxxx",
"app-feature":"hos_system_app",
"bundle-name":"com.example.xxxx",
"apl":"system_core"
},
然后,進入 905 設備系統,修改 905 設備系統配置文件,通過 hdc file recv /etc/static_subscriber_config.json D:命令將系統配置文件存放到電腦中。

然后修改 static_subscriber_config.json 文件,在該文件中加入我們這個應用的包名:

{
"xxx",
"ohos.extension.staticSubscriber",
"xxx"
}

最后把修改好的配置文件重新加入到設備系統中:

hdcshell"mount-oremount,rw/"
hdcfilesendD:static_subscriber_config.json/etc/static_subscriber_config.json

然后重新啟動,應用監聽到開機事件,此時就可以在日志中看到打印:

e9373f0c-e307-11ed-ab56-dac502259ad0.png


審核編輯 :李倩


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 定時器
    +關注

    關注

    23

    文章

    3246

    瀏覽量

    114725
  • 代碼
    +關注

    關注

    30

    文章

    4779

    瀏覽量

    68527
  • OpenHarmony
    +關注

    關注

    25

    文章

    3714

    瀏覽量

    16256

原文標題:OpenHarmony靜態訂閱應用

文章出處:【微信號:gh_834c4b3d87fe,微信公眾號:OpenHarmony技術社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    RabbitMQ中的發布訂閱模型

    上一篇文章中,簡單的介紹了一下RabbitMQ的work模型。這篇文章來學習一下RabbitMQ中的發布訂閱模型。 發布訂閱模型(Publish/Subscribe):簡單的說就是隊列里面的消息會被
    的頭像 發表于 09-25 14:30 ?517次閱讀
    RabbitMQ中的發布<b class='flag-5'>訂閱</b>模型

    基于ArkTS語言的OpenHarmony APP應用開發:公共事件的訂閱和發布

    1、程序介紹 本示例主要展示了公共事件相關的功能,實現了一個檢測用戶部分行為的應用。 具體而言,本案例實現了如下幾個公共事件功能: 通過訂閱系統公共事件,實現對用戶操作行為(亮滅屏、斷聯網)的監測
    發表于 09-18 13:16

    基于OpenHarmony【O了個H】 #OpenHarmony #HarmonyOS

    HarmonyOSOpenHarmony
    程皖Orz
    發布于 :2022年09月22日 10:15:45

    為什么收不到訂閱郵件

    郵箱里沒有訂閱的郵件。這是什么原因?
    發表于 03-13 21:34

    MQTT協議介紹之一:發布/訂閱

    MQTT協議的內容。這里先介紹MQTT信息和協議背景。MQTT介紹MQTT是客戶端服務器發布/訂閱消息傳輸協議,它重量輕,開放,簡單,設計好,易于實施,這些特性使其成為在許多情況下的理想選擇,包括了受限
    發表于 08-25 19:58

    Redis的發布訂閱機制

    Redis之發布訂閱機制
    發表于 06-11 13:21

    OpenHarmony標準設備應用開發筆記匯總

    OpenHarmony 中實現音樂的播放。3、怎樣通過訂閱的方式實現多臺設備間的數據同步更新上一章,我們通過分布式音樂播放器、分布式***、分布式購物車,帶大家講解了 OpenAtom OpenHarmony
    發表于 03-28 14:19

    文檔貢獻與寫作必讀-OpenHarmony開發者文檔風格指南

    Docs,反饋文檔建議和需求,與我們一同持續提升文檔體驗。歡迎訂閱SIG Docs,了解更多文檔資訊docs@openharmony.io訂閱方式詳細參考如下鏈接中,如何訂閱郵件列表
    發表于 07-29 15:04

    OpenHarmony開發之MQTT講解

    ,客戶端B會把substopic的內容打印。客戶端A也做了兩件事:1、訂閱主題為pubtopic的信息;2、發布一條主題為substopic的信息,內容為“Hello OpenHarmony!”。結合客戶端
    發表于 11-16 12:05

    openharmony源碼靜態分析

    OpenHarmony是自主研發、不兼容安卓的全領域下一代開源操作系統。OpenHarmony內核主要包括進程和線程調度、內存管理、IPC機制、timer管理等內核基本功能。
    的頭像 發表于 06-23 15:24 ?1864次閱讀
    <b class='flag-5'>openharmony</b>源碼<b class='flag-5'>靜態</b>分析

    淺談Google Play的全新訂閱功能

    開發者在 Google Play 上有多種盈利方式,數字訂閱則是其中增長最快的之一。隨著訂閱業務模式的發展,許多開發者要求我們簡化訂閱業務的銷售,并提供更多的靈活性。
    的頭像 發表于 05-20 10:25 ?3172次閱讀

    【學習打卡】關于OpenHarmony靜態檢查

    之一,專注于大前端技術的分享,包括Flutter,鴻蒙,小程序,安卓,VUE,JavaScript。 記一次給OpenHarmony提交代碼【序】-靜態檢查失敗 今天我在這個倉庫下提交了一個Pr
    的頭像 發表于 07-02 11:01 ?2577次閱讀
    【學習打卡】關于<b class='flag-5'>OpenHarmony</b>的<b class='flag-5'>靜態</b>檢查

    鴻蒙開發學習:【OpenHarmony HAR】

    OpenHarmony js/ts三方庫使用的是OpenHarmony靜態共享包,即HAR(Harmony Archive),可以包含js/ts代碼、c++庫、資源和配置文件。通過HAR,可以實現
    的頭像 發表于 03-18 16:27 ?744次閱讀

    如何在OpenHarmony設置靜態IP?

    介紹本文適用于所有RK3566/RK3568/RK3588平臺產品在OpenHarmony系統上設置靜態IP。本文以PurplePiOH開發板為例,在OpenHarmony系統上進行設置。觸覺智能
    的頭像 發表于 05-12 08:32 ?740次閱讀
    如何在<b class='flag-5'>OpenHarmony</b>設置<b class='flag-5'>靜態</b>IP?

    基于ArkTS語言的OpenHarmony APP應用開發:公共事件的訂閱和發布

    1、程序介紹本示例主要展示了公共事件相關的功能,實現了一個檢測用戶部分行為的應用。具體而言,本案例實現了如下幾個公共事件功能:通過訂閱系統公共事件,實現對用戶操作行為(亮滅屏、斷聯網)的監測;通過
    的頭像 發表于 09-19 08:05 ?426次閱讀
    基于ArkTS語言的<b class='flag-5'>OpenHarmony</b> APP應用開發:公共事件的<b class='flag-5'>訂閱</b>和發布
    主站蜘蛛池模板: 迅雷成人论坛| 福利社的阿姨| 99视频网站| zooskoo1videos人与狗| 丰满老熟女白浆直流| 丁香美女社区| 成人在线不卡视频| 99精品国产福利在线观看| 越南女子杂交内射BBWXZ| 亚洲国产在线播放在线| 学生无码AV一区二区三区| 日韩欧美一区二区三区在线视频| 免费观看的毛片| 美女挑战50厘米长的黑人 | 大乳牛奶女在线观看| xnxx高中生| 调教美丽的白丝袜麻麻视频| 成人精品视频在线观看| 大陆老熟女60岁| 吃奶吸咪咪动态图| 高清观看ZSHH96的视频素材| 电影 qvod| 国内精品九九视频| 九九在线中文字幕无码| 久久热最新网站获取3| 毛片网站网址| 欧美亚洲视频在线二区| 色欲久久精品AV无码| 亚洲AV无码A片在线观看蜜桃| 一本道久在线综合色姐| 97SE亚洲国产综合在线| yellow在线观看免费直播 | 2019久久这里只精品热在线观看 | 在线观看永久免费网站| 76人遣返航班上71人呈阳性| 成人中文在线| 国精产品一区一区三区M| 久久综合中文字幕无码| 熟女强奷系列中文字幕| 夜色88V精品国产亚洲AV| FREECHINESE东北女人真爽|