Является ли собственная реализация Android BLE синхронной по своей природе?

Я помню, как читал в "Руководстве и подсказке"-документ API Samsung BLE (заархивированная страница):

Одной из важнейших концепций Samsung F/W и стека является его синхронность. То есть, если мы позвоним, например, writeCharacteristic для конкретного признака, если он возвращает true, следующий звонок любому BluetoothGatt или же BluetoothGattServer метод должен быть сделан после onCharacteristicRead обратный звонок получен. Это связано с тем, что стек предназначен для поддержки и обработки только одного вызова GATT за раз, и если, например, вы вызываете writeCharacteristic или же readCharacteristic по любой характеристике вскоре после первой она игнорируется.

  1. Относится ли это также к нативной реализации BLE, представленной в Android 4.3?
  2. Samsung API также поддерживает только одно подключенное устройство GATT одновременно. Изменилось ли это в нативном API?

2 ответа

Решение

Samsung недавно опубликовал документ "Миграция" на той же странице, на которую я ссылался в своем вопросе. Они точно отвечают на мой вопрос, сравнивая новый собственный BLE API с Samsung BLE API:

Синхронный характер стека и F/W не был затронут. То есть, если мы позвоним, например, writeCharacteristic для определенного признака, если он возвращает true, следующий вызов любого BluetoothGatt или же BluetoothGattServer метод должен быть сделан после onCharacteristicRead обратный звонок получен. Это связано с тем, что стек предназначен для поддержки и обработки только одного вызова GATT за раз, и если, например, вы вызываете writeCharacteristic или же readCharacteristic любой characteristic вскоре после первого оно игнорируется.

  1. Нет. Большинство вызовов функций являются асинхронными.
  2. Я не знаю. Официальные документы не упоминают об этом, но не говорят, что он поддерживает только одно устройство. Я верю, что это возможно сделать. Проверьте эту статью: http://blog.lemberg.co.uk/getting-bottom-android-bluetooth-low-energy-api

Он говорит (я не знаю, каков его источник), что несколько периферийных устройств могут подключаться к одному устройству Android Central

Другие вопросы по тегам