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

使用bluez 5.4x播发自定义服务uuid

邵博远
2023-03-14

我正在通过BLE编写一个自定义服务来传输自定义特性。它有自己的UUID,如“8E400001-B5A3-F393-E0A9-E50E24DCA9E”。

我发现我希望支持的特定android应用程序(BLE客户端)需要在广告包中包含自定义服务UUID。

然而,我们的外围设备是通过debian上的bluez 5.43运行的,我不知道如何将这个UUID放入广告包中。

我想会是这样的:

<代码>hcitool-i hci0 cmd 0x08 0x0008

共有1个答案

隗翰海
2023-03-14

我验证了以下命令是否正常工作(BlueZ版本5.43,Linux 4.9.0-2-amd64(x86\u 64)):

hcitool -i hci0 cmd 0x08 0x0008 12 11 07 9E CA DC 24 0E E5 A9 E0 93 F3 A3 B5 01 00 40 8E 00 00 00 00 00 00 00 00 00 00 00 00 00

解释:

如果不让我知道或查看规范中LE Set ADVISING Data命令的描述,我假设0x0008之前的一切都是清楚的。0x12是adVISING\u Data\u Length,即后面的有用字节数(直到填充字节)。现在,您必须插入广告\u数据,其格式如规范第3卷C部分第11节图11.1所示。因此,0x11是广告结构的长度。然后,0x07是AD类型“128位服务类UUID的完整列表”(参见此处)。最后是UUID。请注意,所有内容都是little endian。

然后发送LE设置广告参数命令,例如:

hcitool -i hci0 cmd 0x08 0x0006 00 08 00 08 00 00 00 00 00 00 00 00 00 07 00

然后通过发送LE advertising enable(LE广告启用)命令来启用广告:

hcitool -i hci0 cmd 0x08 0x000A 01

请参见此处的btmon输出。

 类似资料:
  • Appium 的 iOS 版本的后端用的是Facebook's WebDriverAgent。该后端是基于苹果公司的 XCTest 框架,所以也有所有XCTest 框架已知的问题。其中有些问题我们正在设法解决,有一些在现阶段可能无法解决。本文中描述的方法已经能够使您完全掌握在设备上如何构建、管理和运行WDA。通过这种方式,您可以在CI环境中对您的自动化测试进行微调,并使其在长期运行的情况下更加稳定

  • Web 第三方应用开发-服务授权 服务授权 操作介绍 服务类型 Web 第三方应用开发-服务授权 更新时间:2018-07-03 22:04:34 本章讲解:如何关联服务和插件资源。 服务授权 进入应用开发后,点击右上角“服务授权”按钮,可以开通应用开发所需要依赖的服务: 有几个官方服务是默认开通的,不需要手动开通: 操作介绍 开通:开通服务 详情:查看服务详情 配置:配置服务 服务类型 官方服务

  • 首先,BLE外设模拟器的源代码对于任何研究Web蓝牙的人来说都是一个巨大的资源。 有一份经批准的关贸总协定服务清单。 当我修改Android源代码以使用自定义的GATT服务(只需在Android代码中指定自己的UUID即可轻松完成)时,从网页到运行GATT服务器的Android应用程序的配对失败。 Web蓝牙留档确实声明,“如果设备通告的服务UUID与服务UUID集有非空交集,请添加设备以产生结果

  • Examples Basic custom server Express integration Hapi integration Koa integration Parameterized routing SSR caching 一般你使用next start命令来启动 next 服务,你还可以编写代码来自定义路由,如使用路由正则等。 当使用自定义服务文件,如下面例子所示叫 server.js

  • 我想从我的Android应用程序中向文件和文件夹添加自定义属性。我找不到任何使用新的Google Play Services Drive API来做到这一点的方法。API中缺少这一点吗?使用“旧”Drive SDK,我可以通过以下方式做到这一点: 私有静态属性insertProperty(驱动器服务、字符串文件ID、字符串键、字符串值、字符串可见性){Property newProperty=ne

  • 注:内容翻译自官网文档 Language Guide (proto3) 中的 Defining Services 一节 如果想在RPC (Remote Procedure Call) 系统中使用消息类型, 可以在.proto文件中定义RPC服务接口, 然后protocol buffer编译器会生成所选语言的服务接口代码和桩(stubs). 因此, 例如, 如果想定义一个RPC服务,带一个方法处理S