求告知静态订阅相关方法

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
相关问题
求告知删除数据文件的方法
431浏览 • 1回复 待解决
求告知ohpm如何迁移仓
343浏览 • 1回复 待解决
求告知ArkTS是否支持断言
330浏览 • 1回复 待解决
求告知如何发起HTTP请求
452浏览 • 1回复 待解决
求告知HAR如何转换为HSP
398浏览 • 1回复 待解决
求告知如何获取设备的状态
386浏览 • 1回复 待解决
求告知如何强制刷新UI?
362浏览 • 1回复 待解决
求告知如何在本地安装app包
342浏览 • 1回复 待解决
求告知如何创建一个地图
380浏览 • 1回复 待解决
求告知
673浏览 • 1回复 待解决
求告知如何实现防截屏功能
576浏览 • 1回复 待解决
求告知子窗口如何添加动画
414浏览 • 1回复 待解决
求告知如何从view生成图片
346浏览 • 1回复 待解决
求告知如何申请广告跟踪权限
364浏览 • 1回复 待解决
求告知如何获取当前定位
466浏览 • 1回复 待解决
TEE是否对外开放,求告知
589浏览 • 1回复 待解决
求告知如何接入手写服务
483浏览 • 1回复 待解决
能否实现响应者链,,求告知
739浏览 • 1回复 待解决
求告知如何改变menu弹出框的大小
2706浏览 • 1回复 待解决
求告知ArkTS如何获取MD5值
705浏览 • 0回复 待解决
求告知如何全屏播放一个视频
484浏览 • 1回复 待解决
求告知
543浏览 • 1回复 待解决
HarmonyOS NAPI调用ArkTS的静态方法
577浏览 • 1回复 待解决
native侧如何使用类的静态方法
812浏览 • 1回复 待解决