codecamp

鸿蒙OS 定制化系统能力约束

场景介绍

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;
   }
鸿蒙OS 开发驾驶模式支持应用
鸿蒙OS 开发车辆控制应用
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

鸿蒙OS 开发

鸿蒙OS 术语

鸿蒙OS Java API参考

鸿蒙OS ohos.aafwk.ability

鸿蒙OS ohos.aafwk.abilityjet.activedata

鸿蒙OS ohos.aafwk.content

鸿蒙OS java.lang

鸿蒙OS java.Util

鸿蒙OS java.Util class

鸿蒙OS ohos.data.dataability

鸿蒙OS ohos.data.dataability class

鸿蒙OS ohos.agp.components

鸿蒙OS ohos.agp.components interface

鸿蒙OS ohos.agp.components class

鸿蒙OS ohos.global.configuration

鸿蒙OS java.io

鸿蒙OS ohos.data.resultset

鸿蒙OS ohos.data.resultset interface

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }