codecamp

鸿蒙OS 开发ADAS相关应用

场景介绍

通常在汽车使用过程中,驾驶员希望通过显示、声音、预警、故障告警等方式感知行车危险或规划行驶路线,因此 HarmonyOS 提供了 ADAS 辅助交互相关的接口,供三方开发者开发 ADAS 设置、自动泊车等相关应用。

说明

该功能与具体的车厂车型相关,部分低配车型可能不具备该项功能。

接口说明

目前 ADAS 提供的功能主要有以下三类:

  • 驾驶辅助管理类 DrivingAssistManager,提供了驾驶辅助相关方法,例如设置前向/后向碰撞预警开关、设置盲点检测开关、设置导航目的地及导航路径等;
  • 公共信息管理类 InfoAssistManager,提供了 ADAS 公共信息管理的相关方法,例如获取障碍物信息、行车记录仪信息、车道线信息、驾驶员状态信息等;
  • 自主泊车管理类 ParkingAssistManager,提供了泊车控制的相关方法,例如启动泊车、暂停泊车、设置泊车车位、获取泊车状态等。
接口名 描述
byte[] getAdasSignal() 获取指定字节数组类型的驾驶辅助信号值。
<T> T getAdasSignal() 获取指定驾驶辅助信号值。
setAdasActuator() 设置指定驾驶辅助信号值。
sendAdasSignal() 发送指定字节数组类型的驾驶辅助信号请求信息。
subscribeAdasSignal() 订阅指定驾驶辅助信号。
subscribeBatchProperties() 批量订阅指定驾驶辅助信号。
unsubscribeAdasSignal() 取消订阅指定的驾驶辅助信号。
unsubscribeAdasSignalAll() 取消所有订阅的驾驶辅助信号。
接口名 描述
byte[] getAdasSignal() 获取指定字节数组类型的 Adas 信号值。
<T> T getAdasSignal 获取指定 Adas 信号值。
setAdasActuator() 设置指定 Adas 信号值。
sendAdasSignal() 发送指定字节数组类型的 Adas 信号请求信息。
subscribeAdasSignal() 订阅指定 Adas 信号。
subscribeBatchProperties() 批量订阅指定 Adas 信号。
unsubscribeAdasSignal() 取消订阅指定的 Adas 信号。
unsubscribeAdasSignalAll() 取消所有订阅的 Adas 信号。
接口名 描述
byte[] getAdasSignal() 获取指定字节数组类型泊车信号值。
<T> T getAdasSignal() 获取指定泊车信号值。
setAdasActuator() 设置指定泊车信号值。
sendAdasSignal() 发送指定字节数组类型泊车信号请求值。
subscribeAdasSignal() 订阅指定泊车信号。
subscribeBatchProperties() 批量订阅指定的泊车信号。
unsubscribeAdasSignal() 取消订阅指定的泊车信号。
unsubscribeAdasSignalAll() 取消所有订阅的泊车信号。

开发步骤

根据不同管理入口类,调对应接口。

// DrivingAssistManager类使用
boolean result = false;
try {
    Boolean signalValue = DrivingAssistManager.getAdasSignal(Boolean.class, DrivingAssistManager.ID_DRIVING_FCW_WARNING_SWITCH);
    result = true;
} catch (RemoteException | IllegalArgumentException | UnsupportedOperationException e) {
    result = false;
}

 
// ParkingAssistManager类使用
String propId = ParkingAssistManager.ID_PARKING_APA_FUNCTION_SWITCH;
Boolean value = true;
AdasActuatorCallback callback = new AdasActuatorCallback() {
    @Override
    public void onErrorActuator(String propId, int outResult) {}
};
boolean result = false;
try {
     ParkingAssistManager.setAdasActuator(propId, callback, value);
     result = true;
} catch (RemoteException | IllegalArgumentException | UnsupportedOperationException e) {
     result = false;
}
// InfoAssistManager类使用
boolean result = false;
byte[] request = {'q', 'w'};
try {
     byte[] response = InfoAssistManager.getAdasSignal(InfoAssistManager.ID_INFO_HDMINFO, request);
     result = true;
} catch (RemoteException | IllegalArgumentException | UnsupportedOperationException e) {
     result = false;
}
鸿蒙OS 开发CLUSTER相关应用
鸿蒙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; }