鸿蒙OS 定制化系统能力约束
场景介绍
HarmonyOS 提供了系统能力管控接口,允许车厂开发类似“系统设置”类应用,基于当前车型限制条件下,车厂可以提供一些系统能力,允许用户进行自定义管控策略。例如,某车型默认在“驾驶模式”状态下不允许播放视频,但可以允许消息弹出框正常弹出。用户可以根据习惯,为了驾驶安全,将消息弹出框也做限制,不允许在“驾驶模式”状态下弹出。本章节主要指导车厂如何使用定制化管控系统能力。
接口说明
HarmonyOS 提供的驾驶安全管控能力支持定制化管理,三方车厂可以通过 DrivingSafetyConfig 类的能力来开发管控类应用。
说明
- 不同的车厂提供的能力不同,具体需要参考三方车厂能力限制说明;
- 该开放能力只对 OEM 车厂开放,普通三方开发者不可调用。
接口名 | 描述 |
---|---|
getSysDrivingSafetyConfigure() | 查询指定的系统能力是否被管控。 |
setSysDrivingSafetyConfigure() | 设定指定的系统能力是否被管控,具体需要参考三方车厂能力限制说明,不同车厂提供的限制能力不同。 |
目前,HarmonyOS提供了两种系统能力管控的能力:
- SysDrivingSafetyControlItems.DM_IME: 对系统输入法做管控
- SysDrivingSafetyControlItems.DM_Video: 对系统视频播放器做管控
- SysDrivingSafetyControlItems.DM_AUTO_RUN: 对自启动做管控
- SysDrivingSafetyControlItems.DM_REMOTE_CONTROL: 对远程控制做管控
- SysDrivingSafetyControlItems.DM_UPGRADE: 对升级做管控
开发步骤
- 当开发者要查询当前的系统策略时,可以通过 getSysDrivingSafetyConfigure() 接口获取。
- 当开发者需要修改策略时,可以通过 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;
}