• Home
Name Date Size #Lines LOC

..--

AppScope/06-May-2025-3633

entry/06-May-2025-1,042897

hvigor/06-May-2025-2322

publish/06-May-2025-759644

screenshots/06-May-2025-

.gitignoreD06-May-2025127 88

README_zh.mdD06-May-20256.1 KiB10161

build-profile.json5D06-May-20251.3 KiB5554

hvigorfile.jsD06-May-2025168 21

hvigorfile.tsD06-May-2025160 21

hvigorwD06-May-20252.1 KiB6428

hvigorw.batD06-May-20252 KiB7356

oh-package.json5D06-May-2025819 2725

ohosTest.mdD06-May-20251.4 KiB1715

README_zh.md

1# 静态订阅(仅对系统应用开放)
2
3### 介绍
4
5本示例主要展示了静态订阅的创建与使用,以及静态订阅的使能和去使能。通过[CommonEventManager](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-basic-services-kit/js-apis-commonEventManager.md)发布自定义事件,使能和去使能静态订阅。通过[StaticSubscriberExtensionAbility](https://docs.openharmony.cn/pages/v5.0/zh-cn/application-dev/reference/apis-basic-services-kit/js-apis-application-staticSubscriberExtensionAbility-sys.md)、[NotificationManager](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-notification-kit/js-apis-notificationManager.md)静态订阅已发布的自定义事件,订阅后即可自动收到该事件,收到该事件后,发送通知将自定义事件数据显示在通知栏。
6
7### 效果预览
8
9| 主页                             | 发布通知                              | 通知栏                                     |
10| ------------------------------ | --------------------------------- | --------------------------------------- |
11| ![iamge](screenshots/main.png) | ![iamge](screenshots/publish.png) | ![iamge](screenshots/device/static.png) |
12
13使用说明:
14
151. 在entry/src/main/resources/base/profile/subscribe.json中添加需要订阅的目标事件。
16
172. 修改系统配置文件/system/etc/app/install_list_capability.json,将应用的包名添加至该json文件中,修改系统配置文件可以参考[静态订阅公共事件](https://docs.openharmony.cn/pages/v5.0/zh-cn/application-dev/basic-services/common-event/common-event-static-subscription.md)18
193. 本示例编译后共有两个hap包,包括静态订阅hap包和自定义事件发布hap,需要全部安装。静态订阅hap包需要签名成系统应用并安装才可实现对目标事件的静态订阅,安装后即默认订阅了目标事件;自定义事件发布hap包直接安装即可,发布事件后即可被静态订阅方收到,由于两个hap包名一样,在桌面仅能看到一个应用图标,可以使用如下命令以拉起发布事件的hap:
20
21```
22hdc shell aa start -a com.samples.commoneventpublisher.MainAbility -b com.samples.staticsubscriber
23```
24
25
264. 点击关闭静态订阅按钮将不再进行静态订阅,不会收到相关通知,点击开启静态订阅会重新恢复。
27
28### 工程目录
29
30```
31entry/src/main/ets/
32|---Application
33|   |---AbilityStage.ts
34|---MainAbility
35|   |---MainAbility.ts
36|---model
37|   |---Logger.ts                         // 日志工具
38|---pages
39|   |---Index.ets                         // 首页
40|---StaticSubscriber
41|   |---StaticSubscriber.ts               // 静态订阅
42```
43
44### 具体实现
45
46* 通过CommonEventManager.publish方法发布自定义事件,该自定义事件为数据传输事件。
47
48* 源码链接:[Index.ets](publish/src/main/ets/pages/Index.ets)
49
50* 接口参考:[@ohos.commonEventManager](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-basic-services-kit/js-apis-commonEventManager.md)
51
52* 通过CommonEventManager.setStaticSubscriberState方法为当前应用设置静态订阅事件使能或去使能状态。
53
54* 源码链接:[Index.ets](publish/src/main/ets/pages/Index.ets)
55
56* 接口参考:[@ohos.commonEventManager](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-basic-services-kit/js-apis-commonEventManager.md)
57
58* 通过StaticSubscriberExtensionAbility接口静态订阅已发布的自定义事件,订阅后即可自动收到该事件,收到该事件后,setNotificationEnable,ContentType方法发送通知将自定义事件数据显示在通知栏。
59
60* 源码链接:[StaticSubscriber.ts](entry/src/main/ets/StaticSubscriber/StaticSubscriber.ts)
61
62* 接口参考:[@ohos.application.StaticSubscriberExtensionAbility](https://docs.openharmony.cn/pages/v5.0/zh-cn/application-dev/reference/apis-basic-services-kit/js-apis-application-staticSubscriberExtensionAbility-sys.md),[@ohos.notificationManager](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-notification-kit/js-apis-notificationManager.md)
63
64### 相关权限
65
66[ohos.permission.NOTIFICATION_CONTROLLER](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-system-apps.md#ohospermissionnotification_controller)
67
68### 依赖
69
70不涉及
71
72### 约束与限制
73
741.本示例仅支持标准系统上运行,支持设备:RK3568。
75
762.本示例为Stage模型,支持API10版本SDK,SDK版本号(API Version 10 Release),镜像版本号(4.0 Release)。
77
783.本示例需要使用DevEco Studio 版本号(4.0 Release)及以上版本才可编译运行。
79
804.静态订阅仅支持系统应用,需要配置系统应用签名,可以参考[特殊权限配置方法](https://docs.openharmony.cn/pages/v5.0/zh-cn/application-dev/security/AccessToken/determine-application-mode.md),把配置文件中的“apl”字段信息改为“system_core”。
81
825.本示例开发中需要手动替换Full SDK才能编译通过,具体操作可参考[替换指南](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/faqs/full-sdk-switch-guide.md)83
846.实现静态订阅的应用需要经过性能功耗团队评审符合功耗要求,如果您希望在调试阶段尝试使用该功能,可修改系统配置文件/system/etc/app/install_list_capability.json,将待调试应用的包名添加至json文件中。
85
867.修改系统配置文件可以参考[静态订阅公共事件](https://docs.openharmony.cn/pages/v5.0/zh-cn/application-dev/basic-services/common-event/common-event-static-subscription.md)87
888.本示例需要使用DevEco Studio 4.0 Beta2 (Build Version: 4.0.0.400 构建 2023年8月2日)及以上版本才可编译运行。
89
90### 下载
91
92如需单独下载本工程,执行如下命令:
93
94```
95git init
96git config core.sparsecheckout true
97echo code/SystemFeature/ApplicationModels/StaticSubscriber/ > .git/info/sparse-checkout
98git remote add origin https://gitee.com/openharmony/applications_app_samples.git
99git pull origin master
100```
101