Android Ble服务器-仅允许以前连接的设备进行连接

问题描述

我有一个android BLE客户端和一个android BLE服务器。

初始连接后,我希望服务器仅允许以前连接的客户端设备进行连接。

如何实现?

到目前为止,我已经考虑过:

1。通过android蓝牙设置绑定设备

是否可能仅允许绑定的设备连接到服务器?如果可以,怎么办?

2。某种白名单

  • Mac地址(有问题,因为mac地址不是静态的)
  • 设备名称
  • IRK

是否可以实施这样的白名单?如果可以,怎么办?

3。只为首次连接做广告

仅为首次连接做广告,然后记住客户端上的服务器设备并尝试不做广告就连接到服务器。 这似乎不起作用。

解决方法

Id建议您选择第二个选项。使用ble创建连接后,您可以扫描设备,然后在扫描后可以与它们建立GATT连接。因此,如果您只希望先前连接的设备建立此连接,则只需过滤,然后在扫描回调中即可。由于可以按MAC地址进行过滤。可以通过在全局设置中存储您的MAC地址列表来完成此操作,以便在应用重新打开时不会重置数据。只需在您的设备中添加字符串列表,然后对其进行过滤即可。

对于初始连接,您还将需要一个关闭状态。这样一来,如果您的列表中没有条目,则无需过滤器即可自由扫描。