求告知静态订阅相关方法

1. 静态订阅仅对系统应用开发

2. 静态订阅公共事件对系统功耗有一定影响

StaticSubscriberExtensionAbility类中,获取通过getContext()获取应用上下文。

HarmonyOS
2024-05-26 15:52:32
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
flyCloud00

代码实现

1. 创建订阅者,新建一个StaticSubscriber 类继承StaticSubscriberExtensionAbility ,且重写onReceiveEvent()方法,可以在onReceiveEvent()回调函数中实现我们的业务逻

import StaticSubscriberExtensionAbility from '@ohos.application.StaticSubscriberExtensionAbility' 
 
export default class StaticSubscriber extends StaticSubscriberExtensionAbility { 
  onReceiveEvent(event) { 
    console.info('onReceiveEvent, event: ' + event.event); 
  } 
}

2. 创建订阅者之后,我们需要在model.json5文件中添加以下配置:

{ 
  "module": { 
  ... 
  "extensionAbilities": [ 
    { 
      "name": "StaticSubscriber", 
      "srcEntry": "./ets/staticsubscriber/StaticSubscriber.ts", 
      "description": "$string:StaticSubscriber_desc", 
      "icon": "$media:icon", 
      "label": "$string:StaticSubscriber_label", 
      "type": "staticSubscriber", 
      "exported": true, 
      "metadata": [ 
        { 
          "name": "ohos.extension.staticSubscriber", 
          "resource": "$profile:subscribe" 
        } 
      ] 
    } 
  ] 
  ... 
  } 
}

3. 在resources/base/profile路径下新建subscribe.json文件,该文件表示需要订阅公共事件

{ 
  "commonEvents": [ 
    { 
      "name": "xxx", 
      "permission": "xxx", 
      "events":[ "xxx"] 
    } 
  ] 
}

4. 修改设备的预置配置文件。预置配置文件在设备上的路径为/system/etc/app/install_list_permission.json,设备开机启动时会读取该配置文件,在应用安装会对在文件中配置的allowCommonEvent公共事件类型进行授权。预授权配置文件字段内容包括bundleName、app_signature和allowCommonEvent。

a. bundleName字段配置为应用的Bundle名称。

b. app_signature字段配置为应用的指纹信息。

c. allowCommonEvent字段配置为允许静态广播拉起的公共事件项

[ 
  ... 
  { 
    "bundleName": "com.example.myapplication", // Bundle名称 
    "app_signature": ["****"], // 指纹信息 
    "allowCommonEvent": ["usual.event.A", "usual.event.B"], // 允许静态广播拉起的公共事件项 
    ] 
  } 
]
分享
微博
QQ
微信
回复
2024-05-27 21:04:58
相关问题
求告知
208浏览 • 1回复 待解决
能否实现响应者链,,求告知
426浏览 • 1回复 待解决
TEE是否对外开放,求告知
226浏览 • 1回复 待解决
求告知如何改变menu弹出框的大小
1490浏览 • 1回复 待解决
求告知
179浏览 • 1回复 待解决
native侧如何使用类的静态方法
487浏览 • 1回复 待解决
native侧如何调用类的静态方法
631浏览 • 1回复 待解决
谁能告知一下ArkTS相关知识点总结,
331浏览 • 1回复 待解决
静态路由访问外网不通
1549浏览 • 0回复 待解决
webview静态资源下载完成的回调
538浏览 • 1回复 待解决
api11 无相关方法
520浏览 • 1回复 待解决
用户订阅系统公共事件
528浏览 • 1回复 待解决
订阅emitter分享,谁有更好的办法?
254浏览 • 1回复 待解决
openharmony3.2 Relese 静态IP
1928浏览 • 0回复 待解决
TaskPool是否可以访问静态成员
795浏览 • 1回复 待解决
DTS订阅对象可以同步几个表?
1393浏览 • 1回复 待解决
如何订阅系统环境变量的变化
52浏览 • 1回复 待解决
引用js库静态检查报错
530浏览 • 1回复 待解决