HarmonyOS鸿蒙Next中普通应用如何使用系统API
HarmonyOS鸿蒙Next中普通应用如何使用系统API 作者:坚果,公众号:“大前端之旅”,哔哩哔哩,OpenHarmony布道师,OpenHarmony校源行开源大使,电子发烧友鸿蒙MVP,51CTO博客专家博主,阿里云博客专家。
前提是要替换为Full SDK
有时候,我们需要使用系统API,但是我们新建一个工程时,应用的类型默认为hos_normal_app(普通应用),APL级别默认为normal。
这个时候,我们就需要做些修改,如何修改呢?
我这里给大家给一个参考。
我们就拿这个权限举例
ohos.permission.SYSTEM_FLOAT_WINDOW
允许应用使用悬浮窗的能力。
权限级别:system_basic
授权方式:system_grant
ACL使能:TRUE
首先需要针对两种不同的模型,去声明权限
声明权限
Stage模型
使用Stage模型的应用,需要在module.json5配置文件中声明权限。
{
"module" : {
// ...
"requestPermissions":[
{
"name" : "ohos.permission.SYSTEM_FLOAT_WINDOW",
"reason": "$string:reason",
"usedScene": {
"abilities": [
"FormAbility"
],
"when":"always"
}
}
]
}
}
FA模型
使用FA模型的应用,需要在config.json配置文件中声明权限。
{
"module" : {
// ...
"reqPermissions":[
{
"name" : "ohos.permission.SYSTEM_FLOAT_WINDOW",
"reason": "$string:reason",
"usedScene": {
"ability": [
"FormAbility"
],
"when":"always"
}
},
]
}
}
修改HarmonyAppProvision配置文件
开发者可以参考以下步骤,修改HarmonyAppProvision配置文件。
- 打开OpenHarmony SDK所在目录(可通过DevEco Studio菜单栏中单击File > Settings > OpenHarmony SDK界面查看 )。
- 在SDK目录下,进入Toolchains > {Version} > lib文件夹,打开“UnsgnedReleasedProfileTemplate.json”文件。
- 根据实际需求,修改对应的字段。
这里有两个办法:
- 找到allowed-acls这个字段。
由权限说明查询的信息得知,权限的ACL使能为TRUE,这意味着我们可以通过ACL方式申请
将所需申请的权限中高于当前应用APL等级的,添加到allowed-acls列表中,,如下所示:
"acls": {
"allowed-acls": [
"ohos.permission.SYSTEM_FLOAT_WINDOW"
]
},
- 还有一个办法就是
修改apl字段的值为system_basic (system_core>system_basic>normal),高等级的应用可以申请该级别
{
...
"bundle-info":{
"developer-id":"OpenHarmony",
...
"apl":"system_basic",
"app-feature":"hos_system_app"
},
...
}
- 完成以上步骤后,打开DevEco Studio工具进行自动化签名即可。
参考文档
更多关于HarmonyOS鸿蒙Next中普通应用如何使用系统API的实战教程也可以访问 https://www.itying.com/category-93-b0.html
老哥可以出一期openharmony应用连接串口通信的帖子吗?
更多关于HarmonyOS鸿蒙Next中普通应用如何使用系统API的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,普通应用可以通过以下步骤使用系统API:
- 导入API模块:在应用的
build.gradle
文件中添加所需的系统API依赖。 - 声明权限:在
config.json
文件中声明应用所需的权限。 - 调用API:在代码中直接调用系统API,如
ohos.system.DeviceInfo
等。 - 处理回调:根据API的异步特性,处理回调或Promise返回的结果。
确保应用符合HarmonyOS的开发规范,并通过DevEco Studio进行调试和测试。