OpenHarmony應(yīng)用開發(fā)技巧 - 如何安裝ServiceExtensionAbility

??想了解更多關(guān)于開源的內(nèi)容,請?jiān)L問:??
概述
文檔環(huán)境
- 開發(fā)環(huán)境:Windows 11
- DevEco Studio 版本:DevEco Studio 3.1 Beta1(3.1.0.200)
- SDK 版本:3.2.10.7(OpenHarmony 3.2 Beta5 Full SDK)
- 應(yīng)用模型:Stage
- 開發(fā)板型號:DAYU 200
- 系統(tǒng)版本:OpenHarmony 3.2 Beta5
- 示例工程:??ServiceExtAbility的創(chuàng)建與使用(OpenHarmony 3.2 Beta5分支)??
功能簡介
- ServiceExtensionAbility是SERVICE類型的ExtensionAbility組件,提供后臺服務(wù)相關(guān)擴(kuò)展能力。ServiceExtensionAbility可以被其他組件啟動或連接,并根據(jù)調(diào)用者的請求信息在后臺處理相關(guān)事務(wù),使用方法可以參考??ServiceExtensionAbility文檔??學(xué)習(xí)。
- 在使用ServiceExtensionAbility時(shí),開發(fā)者遇到的最大問題為無法安裝的問題,在安裝過程中報(bào) install parse profile prop check error 錯誤。本文檔將帶大家學(xué)習(xí)如何正確配置系統(tǒng)應(yīng)用特權(quán),使包含ServiceExtensionAbility組件的應(yīng)用可以正確的安裝在OpenHarmony系統(tǒng)中。
- 本文檔使用ServiceExtensionAbility文檔中的示例工程ServiceExtAbility演示。
前期準(zhǔn)備
克隆ServiceExtAbility工程,使用DevEco Studio打開并配置??自動簽名??,構(gòu)建HAP包。

由于本文檔使用較新的SDK版本不適配于OpenHarmony 3.2 Beta5分支Sample的部分工程,需對此工程進(jìn)行適配。
適配完后構(gòu)建成功。

安裝構(gòu)建好的HAP包,報(bào)failed to install bundle. error: install parse profile prop check error錯誤。
ServiceExtensionAbility目前僅供系統(tǒng)應(yīng)用使用,需要在系統(tǒng)應(yīng)用特權(quán)配置文件需配置相關(guān)應(yīng)用的Service使用權(quán)限,未配置的應(yīng)用是無法正確安裝的。
如何安裝ServiceExtensionAbility
證書指紋獲取
指紋獲取有多種方式,此處選用一種較為方便的方式,其他方式可參考??OpenHarmony應(yīng)用開發(fā)技巧 - 如何獲取證書指紋??。?
- 在工程中創(chuàng)建新Module,File > New > Module > Empty Ability。一直點(diǎn)擊Next 直到創(chuàng)建成功。

- 執(zhí)行Run > Run 'application'(application為新創(chuàng)建Module的名稱),新創(chuàng)建的Module 的HAP包被安裝到系統(tǒng)中。

- 執(zhí)行以下命令打印出HAP的finger 信息,然后刪除新創(chuàng)建的Module ,恢復(fù)工程。
hdc shell "bm dump -n ohos.samples.eTSServiceExtAbility | grep finger"

7AA667BC46B8B1EAAA36EEFC2E7FED47BD49A68C7C07A36F29191769FCF36AD0
應(yīng)用特權(quán)配置
- 提取當(dāng)前系統(tǒng)中的特權(quán)配置文件install_list_capability.json ,文件位于/etc/app/ 中。
hdc file recv /etc/app/install_list_capability.json D:\

- 在文檔最下面添加應(yīng)用的信息,以本文檔示例工程為例。其中:
- bundleName:應(yīng)用包名。
- app_signature:上一章節(jié)獲取的證書指紋。
- allowAppUsePrivilegeExtension:是否允許應(yīng)用使用ServiceExtension、DataExtension。

- 將特權(quán)配置文件install_list_capability.json 推送回系統(tǒng)中,覆蓋系統(tǒng)配置。
hdc shell "mount -o remount,rw /"
hdc file send D:\install_list_capability.json /etc/app/install_list_capability.json

- 重啟系統(tǒng)特權(quán)配置文件生效。
hdc shell reboot
應(yīng)用安裝驗(yàn)證
重新執(zhí)行安裝命令,安裝前期準(zhǔn)備章節(jié)中構(gòu)建好的HAP包。
hdc install entry\build\default\outputs\default\entry-default-signed.hap
[Info]App install path:entry\build\default\outputs\default\entry-default-signed.hap,
queuesize:0,
msg:install bundle successfully.
AppMod finish

參考文檔
??OpenHarmony Gitee Docs - 應(yīng)用特權(quán)配置指南??




































