我正在制作一个用于控制RGB LED的Android应用。我正在使用RN4870 / 71蓝牙芯片,并且能够发现它并成功连接到它。但是,当我扫描设备时,我的应用程序会发现我周围所有可用的BLE设备。而且我只想发现我的模块,因此用户没有机会连接到其他设备。
按名称过滤不是一个选项,因为用户可以在Android蓝牙设置中更改模块的名称。
因此,有什么方法可以确定您要查找的特定设备。甚至可以创建一个自定义标识符,以标识将显示“我可以与此特定的Android应用程序一起使用”的模块。
一个例子类似于Phillips Hue:他们的应用程序允许您仅连接到他们的特定产品,即使使用蓝牙,也不能连接其他任何东西。
我正在阅读一些有关UUID和GATT服务/特性的信息(较早的蓝牙版本不支持GATT),但是我不确定是否是这样。如果是这样,那么如果我理解正确的话,那么您应该能够在模块上指定自定义UUID,然后通过应用扫描过程对其进行识别。
注意:另外,我还必须指出,我并不是要识别特定的单个设备(因为可以使用MAC地址来实现)。相反,我正在寻找一种识别设备特定类型的方法。例如,如果我要出售这种RGB LED控制器,我希望每个模块和应用程序都能够标识自己,并阻止用户从我的应用程序连接到其他蓝牙设备。