当前位置: 首页 > 知识库问答 >
问题:

如何获取蓝牙中对应UUID的服务名称?

夏侯昊明
2023-03-14

我正在开发一个蓝牙应用程序,我需要获取特定客户端蓝牙设备提供的服务的名称。我使用以下代码来获取UUID。

代码片段:

 if(BluetoothDevice.ACTION_UUID.equals(action)) 
 {
 BluetoothDevice device =       intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
 Parcelable[] uuidExtra =    intent.getParcelableArrayExtra(BluetoothDevice.EXTRA_UUID);
 for (int i = 0; i < uuidExtra.length; i++) {
String abc=uuidExtra[i].toString());
 }
 }

我得到的uuid值例如"00001000-0000-1000-8000-00805F9B34FB"但我需要其相应的服务名称如下。

00001001-0000-1000-8000-00805F9B34FB PublicBrowseGroupServiceClass=00001002-0000-1000-8000-00805F9B34FB

共有2个答案

穆嘉
2023-03-14

顺便说一下,它与iOSdev不同,我们在连接时无法通过android公共api(uuid除外)获取service_namecharactistics_name,所以如果我们想扩展自己的service_namecharactistics_namecharactistics.getUUIDName())(仍然使用映射添加自己charactistics_uuid不可互换)

乜元魁
2023-03-14

在Bluetooth.com可以找到16位UUID的列表。它们都可以转换成128位的。你只需要检查GATT规格。唯一剩下的就是用UUID映射名称,这可能需要您自己编写。

 类似资料:
  • 我正在考虑为一个定制应用程序实现一些GATT服务,但我现在正忙于研究。我知道服务UUID不是随机的,有些部分定义得很好,有些部分仍然让我困惑。 E、 g.设备信息服务的广告名称似乎是0000180a xxx,我可以在中找到“180a”https://www.bluetooth.com/specifications/gatt/services/,但子字段“型号字符串”的id为00002a24 xxx

  • 目前我正在研究心率监测器,我发现“2A37”是uuid,用于从hrm设备获取心率数据。然后我搜索了很多,但我没有找到,为什么我应该使用“2A37”而不是其他来获取心率数据。 我已经浏览了蓝牙网站下面链接的信息,但仍然感到困惑。 https://developer.bluetooth.org/gatt/services/Pages/ServicesHome.aspx. 任何人都可以让我了解如何为不同

  • 我正在尝试构建一个使用蓝牙的android应用程序。在教程中,他们使用128位UUID,但我只有16位UUID。我必须使用服务UUID和蓝牙基础创建一个新的128位UUID。 例子: 警报通知服务UUID(16bit)= 通过组合这两个UUID,我们收到。。。 警报通知服务UUID(128bit)= 有没有合适的方法?

  • 从蓝牙android API获取android辅助蓝牙gatt服务。 下面是我们获取ble服务的代码: 甚至尝试以独占方式获取辅助服务,但它返回空对象: 有人可以指出任何指针如何在Android中搜索辅助服务。

  • 1.1. 蓝牙相关代码目录: 1.2. 更新代码后如果发生编译通不过或者运行时错误的情况: 1.3. 如果模组相同,只是迁移平台: 1.4. 如果模组切换,则还需要增加的步骤: 1.5. 如果厂商需要定义自己的 BLE 的 UUID: 1.6. 如何确认蓝牙服务已经正常: 1.1. 蓝牙相关代码目录: buildroot/package/aml_brcm_bsa:博通模组厂商提供的代码包,主要是m

  • ap.getBLEDeviceServices(OPTION | deviceId, CALLBACK) 获取蓝牙设备所有 service(服务)。 OPTION 参数说明 名称 类型 必填 描述 deviceId String 是 蓝牙设备 id,参考 device 对象 CALLBACK 参数说明 名称 类型 描述 services Array service 对象,详见下表 service对