Android 4.3 BTLE как сервер: как запустить рекламу?
Я пытаюсь реализовать BTLE SERVER на Nexus 7 с новым BTLE API в 4.3. Я сталкиваюсь с несколькими проблемами. Во-первых, нет примеров с SDK. Единственный пример для клиента. Во-вторых, документация на самом деле говорит вам делать не то, что нужно. В нем говорится, что нужно использоватьBluetoothAdapter.getProfileProxy() with a BluetoothProfile.GATT_SERVER
параметр для полученияBluetoothGattServer
объект. Этот подход будет работать, но один не сможет связатьс реализациейBluetoothGattServerCallback
в стек BLE. (Этот обратный вызов - то, как каждый отвечает на запросы клиента на чтение и запись.) Однако, после спотыкания на проблеме 58582 разработчик указал на новыйBluetoothManager.openGattServer()
метод, который принимает ваш обратный вызов в качестве параметра и возвращаетBluetoothGattServer
объект. Ну, одна проблема решена.
Следующий вопрос более проблематичен.BluetoothGattServer
В документации говорится, что этот класс можно использовать для создания и рекламы услуг и характеристик Bluetooth LE. Создание сервисов и т. Д. Не было проблемой, но они пренебрегают, как начать рекламу. Нет никакого метода в самом классе или любом другом из классов, которые я могу найти.
Кто-нибудь знает как это сделать? На данный момент все, что я могу видеть, - это использовать тот же подход, который использовался клиентом, но этот подход включает сканирование (которое не является рекламой). Вся документация далее предполагает, чтоBluetoothAdapter.startLeScan()
Действительно только для сканирования.
Итак, как мне вызвать рекламу, когда все мои услуги, характеристики и дескрипторы будут готовы?