Android_SmartDeviceLink _Get Vehicle Data

我的博客

获取车机数据

使用getvehicle - data RPC请求获取车辆数据。为了获取数据,HMI级别必须是完整的、有限的或背景。
每个汽车制造商决定它将公开哪些数据。请检查OnPermissionsChange RPC通知,以查明您将在您的head单元中访问哪些数据

注意:您可能只要求对您的appName可用的车辆数据。这些将分别由每个OEM(.原始设备制造商)指定。

Single Time Vehicle Data Retrieval单次车辆数据查询

使用getvehicle数据,我们可以在需要的情况下,一次询问车辆数据。

GetVehicleData vdRequest = new GetVehicleData();
vdRequest.setPrndl(true);
vdRequest.setOnRPCResponseListener(new OnRPCResponseListener() {
    @Override
    public void onResponse(int correlationId, RPCResponse response) {
        if(response.getSuccess()){
            PRNDL prndl = ((GetVehicleDataResponse) response).getPrndl();
            Log.i("SdlService", "PRNDL status: " + prndl.toString());
        }else{
            Log.i("SdlService", "GetVehicleData was rejected.");
        }
    }
});
try {
    proxy.sendRPCRequest(vdRequest);
} catch (SdlException e) {
    e.printStackTrace();
}

Subscribing to Vehicle Data 订阅车机数据

订阅车辆数据可以让您在有新数据时得到通知。这些数据不应以一致的方式接收。新的车辆数据大约每秒钟都能得到。
首先,发送订阅车辆数据请求。

SubscribeVehicleData subscribeRequest = new SubscribeVehicleData();
subscribeRequest.setPrndl(true);
subscribeRequest.setOnRPCResponseListener(new OnRPCResponseListener() {
    @Override
    public void onResponse(int correlationId, RPCResponse response) {
        if(response.getSuccess()){
            Log.i("SdlService", "Successfully subscribed to vehicle data.");
        }else{
            Log.i("SdlService", "Request to subscribe to vehicle data was rejected.");
        }
    }
});
 
try {
    proxy.sendRPCRequest(subscribeRequest);
} catch (SdlException e) {
    e.printStackTrace();
}

然后,您将能够在OnVehicleData通知中观察到新的数据:

@Override
public void onOnVehicleData(OnVehicleData notification) {
    PRNDL prndl = notification.getPrndl();
    Log.i("SdlService", "PRNDL status was updated to: " prndl.toString());
}

Unsubscribing from Vehicle Data取消订阅车机数据

有时你可能并不总是需要你监听的所有车辆数据。我们建议您只在需要车辆数据时才订阅。要停止收听特定的车辆数据项,请使用UnsubscribeVehicleData

UnsubscribeVehicleData unsubscribeRequest = new UnsubscribeVehicleData();
unsubscribeRequest.setPrndl(true); // unsubscribe to PRNDL data
unsubscribeRequest.setOnRPCResponseListener(new OnRPCResponseListener() {
    @Override
    public void onResponse(int correlationId, RPCResponse response) {
        if(response.getSuccess()){
            Log.i("SdlService", "Successfully unsubscribed to vehicle data.");
        }else{
            Log.i("SdlService", "Request to unsubscribe to vehicle data was rejected.");
        }
    }
});
 
try {
    proxy.sendRPCRequest(unsubscribeRequest);
} catch (SdlException e) {
    e.printStackTrace();
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,286评论 19 139
  • Spark SQL, DataFrames and Datasets Guide Overview SQL Dat...
    Joyyx阅读 8,366评论 0 16
  • 点击查看原文 Web SDK 开发手册 SDK 概述 网易云信 SDK 为 Web 应用提供一个完善的 IM 系统...
    layjoy阅读 14,040评论 0 15
  • 现在17岁的我,跌跌撞撞地开启了自己的大学生活。以此文章回忆以前,祭奠自己的白日梦,开启全新的自我。感谢听我讲故事...
    乐橙橙橙橙阅读 344评论 0 0
  • 在清晨的时候出发,迎着这风,从一个城市到另一个城市。见过旧人,时常在这样的时候悄无声息的离开。可一直这样吧,会纠结...
    bug温阅读 177评论 0 0