【问题标题】:HIDL interface inheritanceHIDL 接口继承
【发布时间】:2020-12-11 05:20:59
【问题描述】:

我正在尝试扩展 HAL 功能的实现。似乎一旦发布了 HAL 接口,我们就无法在该版本中进行任何更改。所以我尝试通过在这里引用https://source.android.com/devices/architecture/hidl-java#extensions来做接口继承。

IA.HAL 文件

interface IA{
Amethod();
};

ClientService.Java 文件

IA ia = IA.getService(true);
//ia is not null. Working fine

对于扩展,我创建了一个新的 HAL 文件,其中涉及接口继承,如下所示。

IB.HAL 文件

import IA;
interface IB extends IA{
Bmethod()
};

ClientService.Java 文件

IA ia = IA.getService(true);
//ia is not null. Working fine
IB ib = IB.castFrom(ia);
**// ib is null. Issue**

知道我做错了什么。提前致谢。

【问题讨论】:

    标签: android inheritance hal hidl


    【解决方案1】:

    HAL 服务器由其接口名称和实例名称标识。难道提供IA的服务器还在运行?

    您目前可能有以下设置:

    Binary Interface Instance
    /system/bin/ia-service IA "default"
    /vendor/bin/ib-service IB "default"

    getService 的默认设置是使用 "default" 作为实例。

    解决方案:

    1. 确保ia-service 未启动。
    2. 通过在ib-service 中调用registerAsService("new") 为您的HAL 提供一个新的实例名称(例如"new"),并在您的客户端中使用```getService("new", true)```` 获取该实例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-10
      • 2010-09-21
      • 2015-10-12
      • 2011-03-24
      相关资源
      最近更新 更多