Могу ли я подключиться к периферийному устройству Bluetooth, подключенному к сети, которое не является рекламой? - PullRequest
0 голосов
/ 18 февраля 2019

Я новичок в Bluetooth, но в течение месяца или около того работал на клиенте Android, который подключается к периферийному устройству BLE для записи данных в характеристику.

Моим периферийным устройством BLE является nrf52832 (Nordic)устройство и я загрузили пример проекта BLE_SM ( security manager ), чтобы я мог использовать связывание / соединение для безопасной связи.

Мой код Android успешно соединяется / связывается с периферийным устройством, но изто, что я вижу периферию, теперь перестает рекламироваться.Я не уверен, что это нормально или это потому, что я получил событие gap.onDisconnection типа REMOTE_USER_TERMINATED_CONNECTION.

Независимо от того, связан ли я, вы можете подумать, что теперь мне больше не нужно сканировать устройство и я могупросто позвоните device.connectGatt(), но он не работает, и мой обратный вызов получает событие GATT STATE_DISCONNECTED.Я прочитал в другом посте, который вставил следующее из Nordic ( Tutorial ):

Невозможно подключиться к периферийному устройству, которое не является рекламой, даже если известно, что егоадрес до.Это связано с тем, что периферийное устройство будет включать приемник только на определенное время после передачи рекламы.Это время используется для прослушивания запросов на подключение и запросов на сканирование.

Если это действительно так, кажется, что я не смогу постоянно останавливать рекламу периферийных устройств, что бесполезно, если я пытаюсьуменьшить энергопотребление периферийного устройства.

1 Ответ

0 голосов
/ 18 февраля 2019

Цитата верна на 100%.Настройка соединения не имеет никакого отношения к тому, подключено ли устройство или нет (при условии, что вы не используете направленную рекламу).Если периферийное устройство не подключено и не используется реклама, радио полностью отключено, и поэтому центральное устройство не может подключиться.

Если вы хотите минимизировать энергопотребление, убедитесь, что вы не размещаете рекламу, когда вам не нужнок.В зависимости от вашего варианта использования, можете ли вы что-нибудь вызвать рекламу?Например, событие кнопки или датчика?

Если вам нужно все время размещать рекламу, вы можете попытаться использовать более длительный интервал рекламы, чтобы сэкономить заряд батареи, но это увеличит время обнаружения и настройки соединения.

...