OpenHarmony应用ServiceExtensionAbility的使用

发布于:2025-06-29 ⋅ 阅读:(15) ⋅ 点赞:(0)


概述

环境

开发环境:Mac M1
SDK版本:4.1.10.2(Full SDK) Version 11
应用模型:Stage
开发板型号:RK3568集成板
应用版本:OpenHarmony 4.1 Release


一、创建ServiceExtensionAbility服务

创建/entry/src/main/ets/ServiceExtAbility目录,并创建ServiceExtAbility.ets文件。

import ServiceExtensionAbility from '@ohos.app.ability.ServiceExtensionAbility';
class ServiceExtAbility extends ServiceExtensionAbility {
  onCreate(want: Want) {
 
  }
  onRequest(want: Want, startId: number) {
    console.info(TAG, `onRequest, want: ${want.abilityName}`);
  }
  onConnect(want: Want){
    console.warn(TAG, 'ServiceExtensionAbility onConnect,want param:' + JSON.stringify(want) ?? '')
  }
  onDisconnect(want: Want) {
    console.info(TAG, `onDisconnect, want: ${want.abilityName}`);
  }
  onDestroy() {
    console.info(TAG, `onDestroy`);
  }
  
}

二、配置ServiceExtensionAbility服务

在/entry/src/main/module.json5文件中添加ServiceExtAbility服务

{
  "module": {
    "mainElement": "ServiceExtAbility",//这里将新建的服务作为主入口
    "extensionAbilities": [
      {
        "name": "ServiceExtAbility",
        "icon": "$media:icon",
        "description": "service",
        "type": "service",
        "exported": true,
        "srcEntry": "./ets/ServiceExtAbility/ServiceExtAbility.ets"
      }
    ],
    //...其他配置
}

三、应用特权配置

1. 提取当前设备系统中的特权配置文件install_list_capability.json ,文件位于/etc/app/ 中

	hdc file recv /etc/app/install_list_capability.json /Downloads/

2. 在文档最下面添加应用的信息

bundleName:应用包名。
app_signature:获取证书指纹需要注意的是:配置好指纹后,后续如果build-profile.json5中配置的signingConfigs发生修改,对应的也要重新获取app_signature,否则应用将无法安装。
allowAppUsePrivilegeExtension:是否允许应用使用ServiceExtension、DataExtension。
singleton:是否允许应用安装到单用户下(U0),常驻和自启动需配置。
keepAlive:是否允许应用常驻,常驻和自启动需配置。
在这里插入图片描述

3. 将特权配置文件install_list_capability.json 推送回系统中,覆盖系统配置

# 允许读写操作
hdc shell "mount -o remount,rw /"    
# 将修改后的install_list_capability.json文件推送到系统中
hdc file send /Downloads/install_list_capability.json /etc/app/install_list_capability.json 

4. 重启系统特权配置文件生效

hdc shell reboot

四、安装应用

1. 使用DevEco Studio安装应用

在这里插入图片描述

2. 使用hdc安装应用

首先Build Hap包,如下图
在这里插入图片描述

将生成的包推送到设备系统中

hdc file send /Users/shileibin/Downloads/ServiceDemo/entry/build/default/outputs/default/entry-default-signed.hap /data/ServiceDemo.hap

使用bm命令安装应用

# -u 0 表示安装到单用户,卸载时也需要添加 -u 0才能卸载
hdc shell "bm install -p /data/ServiceDemo.hap -u 0"

重启设备

hdc shell reboot

五、补充内容链接

1. 使用ServiceExtensionAbility服务启动其他应用 - 待完成

2. 使用ServiceExtensionAbility服务与同设备下的其他应用进行通信(IPC通信) - 待完成


网站公告

今日签到

点亮在社区的每一天
去签到