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