Ble设备无法始终与手机配对

时间:2019-11-09 15:27:17

标签: android bluetooth-lowenergy android-bluetooth

我有一个可靠的设备,需要定期安全,不断地提取数据。因此,在启动时,我想确保将设备绑定(如果尚未绑定)。在这种情况下,我具有设备的Mac地址。

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

最终发生的是,键状态将在未键合和current_bonding之间交替,但不会完全键合。

奇怪的是,有时它会起作用,但通常不会起作用,尤其是在我的Google Pixel上。通过设置进行绑定也非常不一致。

是否有任何方法可以重试此操作或应该进行某种蓝牙重设,以使我能够始终如一地绑定?

我尝试过定期调用createBond();

1 个答案:

答案 0 :(得分:0)

我经常发现,直接调用createBond()可能会因平台(两端)而导致失败的结果。从逻辑上讲,它应该在内部使用相同的机制,但是我倾向于通过调用具有绑定要求的简单特征来获得更好的结果。

要么成功-表示您的连接已绑定-您就可以继续。否则,它将在内部触发绑定,然后您可以在短暂延迟后重试,此时应将其绑定。