成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

OpenHarmony靜態訂閱應用

系統 OpenHarmony
本文將介紹如何使用靜態訂閱公共事件,靜態訂閱者在未接收訂閱的目標事件時,處于未拉起狀態,當系統或應用發布了指定的公共事件后,靜態訂閱者將被拉起,并執行onReceiveEvent回調,開發者可通過在onReceiveEvent回調中執行業務邏輯,實現當應用接收到特定公共事件時執行業務邏輯的目的。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??

OpenHarmony靜態訂閱應用

1、簡介

本文將介紹如何使用靜態訂閱公共事件,靜態訂閱者在未接收訂閱的目標事件時,處于未拉起狀態,當系統或應用發布了指定的公共事件后,靜態訂閱者將被拉起,并執行onReceiveEvent回調,開發者可通過在onReceiveEvent回調中執行業務邏輯,實現當應用接收到特定公共事件時執行業務邏輯的目的。例如,某應用希望在設備開機的時候執行一些初始化任務,那么該應用可以靜態訂閱開機事件,在收到開機事件后會拉起該應用,然后執行初始化任務。

2、設備與環境

  • 設備:九聯s905l3a機頂盒
  • 系統:OpenHarmony 3.2 beta2
  • SDK:API 9(Full SDK)

3、實現過程

(1)聲明靜態訂閱者

打開 DevEco Studio 創建一個新的Stage工程,在工程中新建一個目錄 StaticSubscriber,然后在該目錄下面新建一個ExtensionAbility的ets文件,并讓該 ExtensionAbility 從 StaticSubscriberExtensionAbility 派生。

OpenHarmony靜態訂閱應用-開源基礎軟件社區

我們可以在 onReceiveEvent(event){ } 中實現自己的業務邏輯,在這里我們實現通過訂閱開機公共事件,來啟動定時器,在日志中打印信息。

import StaticSubscriberExtensionAbility from '@ohos.application.StaticSubscriberExtensionAbility'
import Logger from '../model/Logger'

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

(2)靜態訂閱者工程配置

在完成靜態訂閱者的代碼實現后,需要將該訂閱者配置到系統的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字段添加權限的時候,會導致應用無法成功啟動,使用就把權限去掉了。

(3)應用安裝

首先,修改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"
}

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

hdc shell "mount -o remount,rw /"
hdc file send D:\static_subscriber_config.json /etc/static_subscriber_config.json

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

OpenHarmony靜態訂閱應用-開源基礎軟件社區

4、參考文檔

??靜態訂閱公共事件??

??應用配置文件??

文章相關附件可以點擊下面的原文鏈接前往下載

 https://ost.51cto.com/resource/2701。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??

責任編輯:jianghua 來源: 51CTO 開源基礎軟件社區
相關推薦

2022-03-02 16:08:31

Harmony應用開發鴻蒙

2022-09-21 14:58:11

OH應用簽名鴻蒙

2023-03-01 14:55:09

2023-05-23 14:53:26

鴻蒙應用開發

2022-10-08 16:19:40

智能喂食器鴻蒙

2022-04-29 14:56:40

通話應用源碼剖析

2022-11-04 14:58:59

應用開發鴻蒙

2022-06-02 14:27:05

UI框架JS

2023-08-17 15:04:22

2022-10-08 16:26:23

APP應用開發

2022-03-14 15:11:01

harmony鴻蒙操作系統

2022-11-02 15:49:45

應用開發鴻蒙

2022-03-14 15:26:59

Hi3516Ark子系統鴻蒙

2024-03-04 14:59:51

鴻蒙CPU信息C++

2023-07-31 17:35:31

ArkTS鴻蒙

2023-04-07 09:20:55

2023-10-08 15:23:09

側獲取屏幕DPI鴻蒙

2022-02-15 14:06:36

OpenHarmon操作系統鴻蒙

2022-11-07 15:40:22

數據轉碼應用應用開發

2023-03-09 15:10:49

應用開發鴻蒙
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 自拍偷拍一区二区三区 | 成人午夜网 | 欧美色综合一区二区三区 | 欧美日韩视频在线第一区 | 久久久久久九九九九九九 | 一区二区三区成人 | 国产精品综合色区在线观看 | 91私密视频| 精品一区国产 | 精品一区二区三区四区在线 | 一区二区高清 | 成人在线视频观看 | 免费观看a级毛片在线播放 黄网站免费入口 | 欧美精品乱码久久久久久按摩 | 欧美老少妇一级特黄一片 | 妞干网福利视频 | 精品一区久久 | 国产 日韩 欧美 在线 | 日韩精品免费播放 | av网站免费在线观看 | 久久欧美高清二区三区 | 欧美在线一区二区三区 | 久久精品国产一区二区电影 | 日韩视频一区二区三区 | 精品一二三 | 国产成人精品久久二区二区 | 羞羞在线观看视频 | 欧美精品日韩精品国产精品 | 亚洲永久| a级免费观看视频 | 综合九九| 日韩中文字幕在线观看 | 一二三四在线视频观看社区 | 欧美精品免费观看二区 | 亚洲精品www. | 亚洲一区二区中文字幕 | 欧美一区二区三区在线 | 日韩av网址在线观看 | 亚洲欧美自拍偷拍视频 | 一级片在线视频 | 久久aⅴ乱码一区二区三区 91综合网 |