首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android:如何获得更多蓝牙设备的信息?

Android:如何获得更多蓝牙设备的信息?
EN

Stack Overflow用户
提问于 2020-02-08 22:03:38
回答 1查看 1.1K关注 0票数 0

除了名称和MAC地址外,还可能获得更多关于bondedDevices的信息吗?因此,例如,你可以确定它到底是什么设备(比如齿轮、S3或三星无线耳芽等)。我似乎无法得到这些信息,但这肯定是可能的,对吧?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-08 23:28:34

不适用于“经典蓝牙设备”,而不是蓝牙低能(BLE)设备。

如型号、厂家名称等信息被认为是BLE设备的标准"GATT特性“。

通常,在连接到GATT服务器后,您可以“发现”设备上的所有信息。连接过程的一部分涉及指定回调接口,您可以从该接口发送有关GATT服务器的信息的请求:

  • 关贸总协定服务
  • 关贸总协定特征(每项关贸总协定服务)

已经绑定的蓝牙设备将不包含所需的额外信息,但名称和MAC地址除外。

更重要的是,我发现真正与BLE设备结合是不可靠的(如果不是不可能的话)。

要获得你想要的信息,你需要“发现”关贸总协定的服务,然后为每项服务列出其关贸总协定的特点。一旦映射出这些特征,就可以发送读取请求。一切都是异步完成的,这就是为什么您的应用程序必须为初始的'BluetoothDevice.connectGatt‘命令提供一个回调接口。

如果你将来需要保存这些信息(当设备没有启动时),那就由你的应用程序将发现的信息保存在某个地方(SQLite数据库等)。

我所做的一个观察,也让我非常沮丧的是,尽管蓝牙核心规范定义了GATT的标准特性,但这并不意味着设备的制造商将遵循这个标准。

例如,许多测量“健康”数据的蓝牙(BLE)设备没有使用GATT为此专门定义的特性。他们倾向于定义自己的定制特征。

话虽如此,型号、制造商名称、SW/HW/FW版本号都是相当标准的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60131623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档