Как использовать Bluetooth HIDL? - PullRequest
1 голос
/ 21 мая 2019

Я разрабатываю приложение AOSP, которое должно отправлять команду HCI на чипсет Bluetooth.

Я обнаружил, что могу использовать этот интерфейс: https://source.android.com/reference/hidl/android/hardware/bluetooth/1.0/IBluetoothHci

Чтобы использовать его, я пытался перейти на эту страницу: https://source.android.com/devices/architecture/hidl-java/index.html

Если я хорошо понимаю, мне нужно создать файл Android.mk и поместить

LOCAL_STATIC_JAVA_LIBRARIES +=  android.hardware.bluetooth@1.0

Но я не понимаю, как? Я все еще новичок в разработке AOSP, как я могу использовать эту библиотеку?

1 Ответ

1 голос
/ 10 июля 2019

Если вы разработчик приложения :

Найденный вами IBluetoothHci определяет интерфейс уровня аппаратной абстракции Bluetooth (HAL).Интерфейсы HAL не доступны непосредственно из приложений, но используются сервисами инфраструктуры, которые предоставляют интерфейсы, которые могут использоваться приложениями.Я рекомендую проверить Android SDK: https://developer.android.com/guide/topics/connectivity/bluetooth

Если вы разработчик платформы :

В случае, если вы планируете написать сервис с более высокими привилегиями (вы создаетесам AOSP и прошить все устройство) вы правы. IBluetoothHci это интерфейс для использования.Возможно, вы захотите перейти с использования Android.mk на Android.bp, поскольку файлы Android.mk устарели.В вашем коде я ожидаю увидеть что-то вроде этого:

import android.hardware.bluetooth.V1_0.IBluetoothHci;
...
// retry to wait until the service starts up if it is in the manifest
IBluetoothHci bluetooth = IBluetoothHci.getService(true /* retry */); // throws NoSuchElementException if not available
bluetooth.initialize();

Подсказки о том, как использовать интерфейс HAL, также можно найти в соответствующих тестах VTS (хотя они написаны на C ++): https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/master/bluetooth/1.0/vts/functional/VtsHalBluetoothV1_0TargetTest.cpp

...