如果其他任何尝试连接的应用程序需要断开连接,我们如何才能使BLE外围设备仅连接到我们的Android应用程序(中央)

时间:2019-02-13 12:54:20

标签: android embedded bluetooth-lowenergy gatt bluetooth-gatt

作为一个问题,我们有自己的BLE设备和与该设备连接的Android应用。我们能够连接BLE设备并成功完成所有操作。

同时,我们能够与其他第三方应用程序一起检测到BLE设备,并能够进行连接和操作。

但是我们想限制其他应用程序与我们的BLE设备连接,如果它们立即与设备连接,则需要断开连接。 我已经在Google和SO中进行了搜索,但是无法获得任何信息来实现这一目标,如果有人有帮助的话

1 个答案:

答案 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()向设备发送一些加密的数据,并且设备具有相同的加密算法,并且设备验证我的数据,并对成功与失败做出响应,基于成功与失败,应用可以保持连接和断开连接。并且我还在设备中放置了一些代码,以便如果设备出现故障,则设备会自动断开连接。