鸿蒙OS开发文档 鸿蒙OS 定制化系统能力约束

2024-02-25 开发教程 鸿蒙OS开发文档 匿名 2

场景介绍

HarmonyOS 提供了系统能力管控接口,允许车厂开发类似“系统设置”类应用,基于当前车型限制条件下,车厂可以提供一些系统能力,允许用户进行自定义管控策略。例如,某车型默认在“驾驶模式”状态下不允许播放视频,但可以允许消息弹出框正常弹出。用户可以根据习惯,为了驾驶安全,将消息弹出框也做限制,不允许在“驾驶模式”状态下弹出。本章节主要指导车厂如何使用定制化管控系统能力。

接口说明

HarmonyOS 提供的驾驶安全管控能力支持定制化管理,三方车厂可以通过 DrivingSafetyConfig 类的能力来开发管控类应用。

说明

  1. 不同的车厂提供的能力不同,具体需要参考三方车厂能力限制说明;
  2. 该开放能力只对 OEM 车厂开放,普通三方开发者不可调用。
接口名描述
getSysDrivingSafetyConfigure()查询指定的系统能力是否被管控。
setSysDrivingSafetyConfigure()设定指定的系统能力是否被管控,具体需要参考三方车厂能力限制说明,不同车厂提供的限制能力不同。

目前,HarmonyOS提供了两种系统能力管控的能力:

  • SysDrivingSafetyControlItems.DM_IME: 对系统输入法做管控
  • SysDrivingSafetyControlItems.DM_Video: 对系统视频播放器做管控
  • SysDrivingSafetyControlItems.DM_AUTO_RUN: 对自启动做管控
  • SysDrivingSafetyControlItems.DM_REMOTE_CONTROL: 对远程控制做管控
  • SysDrivingSafetyControlItems.DM_UPGRADE: 对升级做管控

开发步骤

  1. 当开发者要查询当前的系统策略时,可以通过 getSysDrivingSafetyConfigure() 接口获取。
  1. 当开发者需要修改策略时,可以通过 setSysDrivingSafetyConfigure() 接口修改当前系统能力管控策略。
// 构造查询结果对象
DrivingSafetyConfigResult result = new DrivingSafetyConfigResult();
// 调查询能力接口
try{
int errorCode = DrivingSafetyConfig.getSysDrivingSafetyConfigure(SysDrivingSafetyControlItems.DM_IME, result);
if (errorCode != 0) {
HiLog.error("Get DrivingSafetyConfig Error: %d", errorCode));
return;
}
Boolean isOpen = false;
if (!result.isOpen()){ // 当前输入法策略为非管控状态
isOpen = true; // 修改当前输入法策略为管控状态
}
// 调用修改管控能力接口,修改管控策略
errorCode = DrivingSafetyConfig.setSysDrivingSafetyConfigure(SysDrivingSafetyControlItems.DM_IME, isOpen);
if (errorCode != 0) {
HiLog.error("Set DrivingSafetyConfigre Error: %d", errorCode);
return;
}
} catch (RemoteException | IllegalArgumentException e) {
HiLog.error("System Error: %s", e.getMessage())
return;
}