概述
环境
开发环境: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