我正在开发一个蓝牙应用程序,我需要获取特定客户端蓝牙设备提供的服务的名称。我使用以下代码来获取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
顺便说一下,它与iOSdev不同,我们在连接时无法通过android公共api(uuid除外)获取service_name
或charactistics_name
,所以如果我们想扩展自己的service_name
或charactistics_namecharactistics.getUUIDName()
)(仍然使用映射添加自己charactistics_uuid不可互换)
在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对