这是问题所在。用户之前已经运行过我的应用,并发现了蓝牙低功耗健康设备并与之配对。所有应用程序都适用于健康设备。我会跟踪该设备,以便应用程序能够在应用程序运行时自动重新连接到该设备。
如果用户退出应用程序或重启Android并重新启动应用程序,我想设置自动重新连接到这些配对设备。在使用HDP的经典中,这是由Android自动完成的。在BTLE中不是这样!所以我要做的就是浏览配对设备列表并将它们添加到我的已知设备列表中。
但这是问题所在。 BTLE无法知道设备是什么。当我检查BluetoothDevice.getBluetoothClass()。getDeviceClass()或.getMajorDeviceClass()时,它们都给出相同的结果:0x1F00,这意味着'UNCATEGORIZED'。因此,如果某人与BTLE耳机配对,我会将其包含在我的列表中。
有没有办法获取BTLE设备类或类别而无需自己将大量内容保存到文件中?保存BT地址不起作用,因为BTLE设备可以使用随机寻址(尽管大多数没有)。
答案 0 :(得分:0)
我不想这样说,但我得出的结论是没有办法......所以我必须自己做。当我的应用程序的用户接受设备的配对时,我保留其友好名称并将其保存为共享首选项。我想保留地址,但BTLE地址可以解析私有地址,所以我放弃了这个想法。我懒得序列化BluetoothDevice对象并保存它,但这可能是最强大的。
在重新连接时,只需针对我保存的列表检查每个配对设备(由Android操作系统保存),如果匹配,则启动与设备的挂起连接。它有效,但看起来低得令人沮丧。至少我没有开始挂断连接一副耳机。
如果我使用扫描方法而不是挂起连接方法来解决重新连接问题,我只需将配对设备添加到已知设备列表中。
如果有人有更好的解决方案,请发帖!!