作为一个问题,我们有自己的BLE设备和与该设备连接的Android应用。我们能够连接BLE设备并成功完成所有操作。
同时,我们能够与其他第三方应用程序一起检测到BLE设备,并能够进行连接和操作。
但是我们想限制其他应用程序与我们的BLE设备连接,如果它们立即与设备连接,则需要断开连接。 我已经在Google和SO中进行了搜索,但是无法获得任何信息来实现这一目标,如果有人有帮助的话
答案 0 :(得分:1)
在连接事件中,将一些数据从应用程序发送到设备,并从设备获取数据到应用程序,更改某些编程机制,使应用程序将一些数据发送到设备,然后设备进行验证并给出确认,并基于您保持连接状态,否则可以断开与设备的连接。我已经实现了这些东西,并且运行得很好
public boolean connectDeviceBonded(String address, String name) {
if (address == null) {
throw new NullPointerException("Address cannot be null or not found");
}
macAddress = address;
boolean value = bluetoothLe.connectScannerBonded(address);
if ( value) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
int ret = reqEncryptedKey(10000);
if (ret != SUCCESS){
return false;
}
}
return value;
}
reqEncryptedKey()向设备发送一些加密的数据,并且设备具有相同的加密算法,并且设备验证我的数据,并对成功与失败做出响应,基于成功与失败,应用可以保持连接和断开连接。并且我还在设备中放置了一些代码,以便如果设备出现故障,则设备会自动断开连接。