正如问题所建议的,我们有自己的 BLE 设备和 Android 应用程序来与该设备连接。我们能够连接BLE设备并成功完成所有操作。
与此同时,我们能够通过其他第 3 方应用程序检测我们的 BLE 设备,并能够连接和执行操作。
但我们希望限制其他应用程序与我们的 BLE 设备连接,如果它们立即与设备连接,则需要断开连接。 我已经在谷歌和SO中进行了搜索,但无法获得任何信息来实现这一目标,如果有人有想法可以帮助我
最佳答案
在连接事件中,将一些数据从应用程序发送到设备,并从设备到应用程序获取经过验证的数据,更改一些编程机制,使应用程序将一些数据发送到设备,设备验证并给予确认,并基于您保持连接,否则您可以与设备断开连接。我已经实现了这个东西并且工作得很好
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() 向设备发送一些加密数据,设备具有相同的加密算法,设备验证我的数据并对应用程序的成功和失败做出响应,基于成功和失败应用程序可以保持连接和断开连接。我还在设备中放置了一些代码,以便如果设备出现故障,设备会自动断开连接。
关于android - 如果任何其他应用程序尝试连接需要断开连接,我们如何实现 BLE 外围设备仅连接到我们的 Android 应用程序(中央),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54670707/