是否可以获取有关名称和MAC地址之外的bondedDevices的更多信息?因此,例如,您可以确定确切的设备(例如Gear S3或Samsung无线耳塞等)。我似乎无法获得这些信息,但一定有可能,对吧?
答案 0 :(得分:1)
不适用于“经典蓝牙设备”,而不是蓝牙低功耗(BLE)设备。
诸如型号,制造商名称等信息被视为BLE设备的标准“ GATT特性”。
通常,连接到GATT服务器后,您可以在该设备上“发现”各种信息。连接过程的一部分涉及指定一个回调接口,您可以从该接口发送有关GATT服务器信息的请求:
已绑定的蓝牙设备将不包含您要查找的其他信息,除了名称和MAC地址。
此外,我发现与BLE设备进行真正绑定是不可靠的(如果不是不可能的话)。
要获取您想要的信息,您需要“发现” GATT服务,然后为每个服务列出其GATT特征。绘制出特征后,即可发送读取请求。一切都是异步完成的,这就是为什么您的应用必须为初始“ BluetoothDevice.connectGatt”命令提供回调接口的原因。
如果以后需要保留此信息(在设备未加电时),则由您的应用决定将发现的信息保存在某个地方(SQLite数据库等)
我所观察到的一个事实是,尽管蓝牙核心规范定义了标准GATT特性,但这并不意味着该设备的制造商将遵循该标准。
例如,许多测量“健康”数据的蓝牙(BLE)设备未使用专门为此目的定义的GATT特性。他们倾向于定义自己的自定义特征。
话虽这么说,型号,制造商名称,软件/硬件/固件版本号几乎都是标准的。