Чтение / запись всех характеристик от / к конкретной службе - PullRequest
0 голосов
/ 11 января 2019

У меня есть несколько сервисов с разными UUID, но с одинаковыми характеристиками UUID. Я не уверен, какая характеристика будет получена, если я позвоню rxBleConnection.readCharacteristic(UUID). Как это сделать лучше всего? Я могу найти конкретный сервис из списка сервисов, а затем разобраться с BluetoothGattService и его характеристиками, но, может быть, есть другой способ?

1 Ответ

0 голосов
/ 11 января 2019

Когда существует несколько признаков с одинаковым UUID, единственным API, который позволяет пользователю контролировать, какой признак будет использоваться:

  • RxBleConnection.readCharacteristic(BluetoothGattCharacteristic)
  • RxBleConnection.writeCharacteristic(BluetoothGattCharacteristic, byte[])
  • RxBleConnection.setupNotification(BluetoothGattCharacteristic)
  • RxBleConnection.setupIndication(BluetoothGattCharacteristic)
  • Другие, которые подвергают использованию BluetoothGattCharacteristic

Чтобы получить ссылку на BluetoothGattCharacteristic, пользователь должен найти результат RxBleConnection.discoverServices() - сначала получить необходимый BluetoothGattService, а затем искать в сервисе нужный BluetoothGattCharacteristic

...