Я новичок в Bluetooth, но в течение месяца или около того работал на клиенте Android, который подключается к периферийному устройству BLE для записи данных в характеристику.
Моим периферийным устройством BLE является nrf52832 (Nordic)устройство и я загрузили пример проекта BLE_SM ( security manager ), чтобы я мог использовать связывание / соединение для безопасной связи.
Мой код Android успешно соединяется / связывается с периферийным устройством, но изто, что я вижу периферию, теперь перестает рекламироваться.Я не уверен, что это нормально или это потому, что я получил событие gap.onDisconnection типа REMOTE_USER_TERMINATED_CONNECTION.
Независимо от того, связан ли я, вы можете подумать, что теперь мне больше не нужно сканировать устройство и я могупросто позвоните device.connectGatt()
, но он не работает, и мой обратный вызов получает событие GATT STATE_DISCONNECTED.Я прочитал в другом посте, который вставил следующее из Nordic ( Tutorial ):
Невозможно подключиться к периферийному устройству, которое не является рекламой, даже если известно, что егоадрес до.Это связано с тем, что периферийное устройство будет включать приемник только на определенное время после передачи рекламы.Это время используется для прослушивания запросов на подключение и запросов на сканирование.
Если это действительно так, кажется, что я не смогу постоянно останавливать рекламу периферийных устройств, что бесполезно, если я пытаюсьуменьшить энергопотребление периферийного устройства.