除了名称和MAC地址外,还可能获得更多关于bondedDevices的信息吗?因此,例如,你可以确定它到底是什么设备(比如齿轮、S3或三星无线耳芽等)。我似乎无法得到这些信息,但这肯定是可能的,对吧?
发布于 2020-02-08 23:28:34
不适用于“经典蓝牙设备”,而不是蓝牙低能(BLE)设备。
如型号、厂家名称等信息被认为是BLE设备的标准"GATT特性“。
通常,在连接到GATT服务器后,您可以“发现”设备上的所有信息。连接过程的一部分涉及指定回调接口,您可以从该接口发送有关GATT服务器的信息的请求:
已经绑定的蓝牙设备将不包含所需的额外信息,但名称和MAC地址除外。
更重要的是,我发现真正与BLE设备结合是不可靠的(如果不是不可能的话)。
要获得你想要的信息,你需要“发现”关贸总协定的服务,然后为每项服务列出其关贸总协定的特点。一旦映射出这些特征,就可以发送读取请求。一切都是异步完成的,这就是为什么您的应用程序必须为初始的'BluetoothDevice.connectGatt‘命令提供一个回调接口。
如果你将来需要保存这些信息(当设备没有启动时),那就由你的应用程序将发现的信息保存在某个地方(SQLite数据库等)。
我所做的一个观察,也让我非常沮丧的是,尽管蓝牙核心规范定义了GATT的标准特性,但这并不意味着设备的制造商将遵循这个标准。
例如,许多测量“健康”数据的蓝牙(BLE)设备没有使用GATT为此专门定义的特性。他们倾向于定义自己的定制特征。
话虽如此,型号、制造商名称、SW/HW/FW版本号都是相当标准的。
https://stackoverflow.com/questions/60131623
复制相似问题