Устройство Ble не согласовано с телефоном - PullRequest
0 голосов
/ 09 ноября 2019

У меня есть отличное устройство, с которого мне нужно регулярно и безопасно извлекать данные. Поэтому при запуске я хочу убедиться, что устройство подключено, если оно еще не установлено. В этом случае у меня есть Mac-адрес устройства.

public void startApp(){
    remoteDevice = bluetoothManager.getAdapter().getRemoteDevice(MAC_AD);
    if(remoteDevice.getBondState()!=12){
        remoteDevice.createBond();
    }
}

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

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

Есть ли способ повторить этот или какой-либо сброс настроек Bluetooth, который необходимо выполнить, чтобы я мог соединиться последовательно?

Я пытался позвонитьcreateBond () в интервалах;

1 Ответ

0 голосов
/ 11 ноября 2019

Я часто обнаруживал, что прямой вызов createBond() может привести к ударам и неудачам в зависимости от платформы (оба конца). По логике вещей, он должен использовать тот же механизм для внутреннего использования, но я склонен добиваться лучших результатов, вызывая чтение по простой характеристике, имеющей связанные требования. ,Или же происходит сбой, что вызывает внутреннее связывание, и затем вы можете повторить попытку через короткую задержку, после чего оно должно быть соединено.

...