当前位置: 首页 > 面试题库 >

将BlueZ Stack用作外围设备(广告商)

锺离德庸
2023-03-14
问题内容
  • 目标 :使用BlueZ和Bluetooth 4LE加密狗创建一个外围设备,用于宣传与“ Hello World”类似的蓝牙。

  • 我现在在哪里 :我已经安装并下载了BlueZ堆栈,我可以使用hci工具来识别并查看蓝牙加密狗。我已经修改过hciconfig leadv,但我只是不太了解它/了解发生了什么。

  • 我认为我需要什么帮助 :我需要进行下一步。如果有人可以将我引向一个好的资源,或者带我逐步了解任何内容,将不胜感激。如果我需要做更多的腿部(搜索)工作,可以,但我已经尽我所能想到,用这个问题的尽可能多的不同派生方式搜索了Google和SO。

*我也将其标记为CoreBluetooth,希望某个iOS开发人员在某个时候可以对此进行修改。

编辑:在回应评论时,谨慎地说出我的最终目标是什么。我最终希望通过加密狗做广告,以最简单的简单消息/信号做广告,然后在iOS设备(CoreBluetooth)上进行接收。我已经能够使iOS方面的工作正常(相对于Linux方面的工作,有大量的文档),但是对我而言,最困难的部分是将该适配器设置作为外围设备。BlueZ堆栈对我来说是一个可怕的谜。

编辑:好的,所以我继续学习。在过去的几天中,我更深入地研究了hci*,sdptool和gatttool工具。我已经可以设置适配器来通告“hciconfig hci0leadv”。在这一点上,我可以成功地“看到”适配器,但是我实际上无法从中读取任何内容。我什至没有看到友好的名字。我会继续加油,但是一如既往,任何帮助/建议都非常受欢迎。

编辑:相关链接,关于iOS的Bluetooth LE的完整概述。
https://developer.apple.com/library/content/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/AboutCoreBluetooth/Introduction.html#//apple_ref/doc/uid/TP40013257-CH1-SW1

最后编辑:大家好,此链接介绍如何使用Raspberry Pi + BlueZ创建iBeacon …
http://www.wadewegner.com/2014/05/create-an-ibeacon-transmitter-with-the-
raspberry -pi /


问题答案:

插入蓝牙加密狗后,运行以下命令将告诉您设备名称并提供其状态:

$ hciconfig

输出应如下所示:

hci0:    Type: BR/EDR  Bus: USB
     BD Address: 00:01:02:aa:bb:cc  ACL MTU: 1021:8  SCO MTU: 64:1
     DOWN
     RX bytes:1000 acl:0 sco:0 events:47 errors:0
     TX bytes:1072 acl:0 sco:0 commands:47 errors:0

这表明被称为hci0的设备处于关闭状态。发出以下命令来启动它:

$ sudo hciconfig hci0 up

现在看起来应该像这样:

$ hciconfig
hci0:   Type: BR/EDR  Bus: USB
     BD Address: 00:01:02:aa:bb:cc  ACL MTU: 1021:8  SCO MTU: 64:1
     UP RUNNING
     RX bytes:1000 acl:0 sco:0 events:47 errors:0
     TX bytes:1072 acl:0 sco:0 commands:47 errors:0

接下来,执行以下示例命令以配置要发送的广告数据。

$ sudo hcitool -i hci0 cmd 0x08 0x0008 1e 02 01 1a 1a ff 4c 00 02 15 e2 c5 6d b5 df fb 48 d2 b0 60 d0 f5 a7 10 96 e0 00 00 00 00 c5 00 00 00 00 00 00 00 00 00 00 00 00 00

您可以更改十六进制字节(以1e开头)以为广告发送不同的字节序列。一,从字面上发送ASCII码为“HELLO WORLD”将使用:48 45 4c 4c4f 57 4f 52 4c 44

现在,使用以下命令激活加密狗上的广告,这将开始发送“ Helo World”数据包。

$ sudo hciconfig hci0 leadv 0

编辑: 上面的命令使广告服务可连接。如果您不想允许连接,请将其更改为$ sudo hciconfig hci0 leadv 3

您还可以使用以下命令禁用广告:

$ sudo hciconfig hci0 noleadv



 类似资料:
  • > 目标:使用BlueZ和蓝牙4LE加密狗创建一个外设,宣传蓝牙相当于“你好世界”。 我现在的位置:我目前已经安装并下载了BlueZ堆栈,我可以使用hci工具识别和查看蓝牙加密狗。我已经修补了hciconfig leadv,但我只是不太了解它/了解发生了什么。 我想我需要什么帮助:我需要让它进入下一步。如果有人能为我指出一个好的资源,带我走过这条路,或者做任何事情,我将不胜感激。如果我需要做额外的

  • 我试图使用新的Google-service-libs在我的应用中设置AdMob广告。在Genymotion模拟器广告中一切看起来都很好。但他们没有像我的Galaxy Ace GT5830i和Android 2.3.6这样的真实设备。我不知道是什么问题。 下面是一些代码: XML: 我的Ad_Unit_Id以字符串形式保存。res/文件夹中的xml文件。 java语言: 如果您需要更多代码,请告诉我

  • 有没有人使用三星的蓝牙LE API让三星Android设备作为iBeacon做广告?这应该是可能的,但我没有访问设备来尝试它。 如果有人用它来做三星Android设备的广告,作为任何其他蓝牙LE外设,我也想知道这一点。 编辑:这现在可以在Android L上实现。请参见此处。

  • 这听起来很基本,但我是Android BLE开发的初学者。到目前为止,我能够创建我的Nexus9设备作为外围设备和Moto G作为中心设备。而且我正在成功连接设备。但我不知道当我从中央设备发送一个特性时,它将从外设接收到哪里?广告回调仅在广告启动成功而不是(在我的例子中是成功的)时才返回 这是我的外设代码 我正在从中央使用连接的Gatt的writeCharacteristic命令,但不知道如何从外

  • Linux 支持众多的硬件设备,比如:鼠标、打印机、扫描仪、PCMCIA 和 USB 设备。 然而,在安装系统的时候,大部分设备并不需要。 USB 硬件通常工作得很好,只有一些 USB 键盘需要额外地配置(参考 第3.6.4.4节 , "USB BIOS 支持与键盘")。 另外,参考 Linux Hardware Compatibility HOWTO 来判断你的硬件是否被 Linux 支持。

  • Linux 支持众多的硬件设备,比如:鼠标、打印机、扫描仪、PCMCIA 和 USB 设备。 然而,在安装系统的时候,并不需要其中的大部分设备。