您的荣誉:
我想知道如何在BLE(蓝牙低能耗模式)中广播消息。
这种行为就像在Macintosh中的iBeacon一样。
据我所知,windows(7或8)不支持此功能。
但是linux确实如此。
任何人都可以指导/提示我在linux中实现这个目标吗?
通过命令行或代码都可以,两者都很好。
就像是,x86-linux会播放一条消息,例如:"我是笔记本电脑"
我可以使用其他设备(手机/电脑等)接收此信息。
谢谢你的帮助。
答案 0 :(得分:1)
您可以使用BlueZ堆栈在Linux中宣传BLE设备。有关如何执行此操作的基础知识,请参阅此问题:
Use BlueZ Stack As A Peripheral (Advertiser)
根据您要宣传的内容,您需要确定广告中字节的格式。以下是如何使用BlueZ传输开源AltBeacon广告格式的示例:https://github.com/RadiusNetworks/altbeacon-reference/blob/master/altbeacon_transmit
答案 1 :(得分:1)
第0步:
(如果你有mac,请下载mactsAsBeacon进行验证)
在你的android / iOS手机中下载iBeacon扫描仪。
第1步:
这是我的shell脚本:
#!/bin/bash
set -x
export BLUETOOTH_DEVICE=hci0
#sudo hcitool -i hcix cmd <OGF> <OCF> <No. Significant Data Octets> <iBeacon Prefix> <UUID> <Major> <Minor> <Tx Power> <Placeholder Octets>
#OGF = Operation Group Field = Bluetooth Command Group = 0x08
#OCF = Operation Command Field = HCI_LE_Set_Advertising_Data = 0x0008
#No. Significant Data Octets (Max of 31) = 1E (Decimal 30)
#iBeacon Prefix (Always Fixed) = 02 01 1A 1A FF 4C 00 02 15
export OGF="0x08"
export OCF="0x0008"
export IBEACONPROFIX="02 01 1A 1A FF 4C 00 02 15"
#export UUID="92 77 83 0A B2 EB 49 0F A1 DD 7F E3 8C 49 2E DE"
export UUID="B9 40 7F 30 F5 F8 46 6E AF F9 25 55 6B 57 FE 6D"
export MAJOR="01 02"
export MINOR="03 04"
export POWER="C5 00"
sudo hciconfig $BLUETOOTH_DEVICE up
sudo hciconfig $BLUETOOTH_DEVICE noleadv
sudo hciconfig $BLUETOOTH_DEVICE noscan
sudo hciconfig $BLUETOOTH_DEVICE leadv 3
sudo hcitool -i $BLUETOOTH_DEVICE cmd 0x08 0x0008 $IBEACONPROFIX $UUID $MAJOR $MINOR $POWER
#sudo hciconfig $BLUETOOTH_DEVICE leadv 3
第2步:
运行此脚本,您会发现手机上的iBeacon扫描仪找到了linux ibeacon发射器。
如果您想关闭电路板广播:
sudo hciconfig hci0 noleadv
答案 2 :(得分:0)
export IBEACONPROFIX =“ 02 01 1A 1A FF 4C 00 02 15”
是正确的,但可以进一步分为Bluetooth HCI数据和Apple专有数据:
3个字节的标志,符合《蓝牙核心规范》的补充
02:长度(1)
01:输入“标志”
1A:标志值
后跟供应商专有数据
1A:专有有效载荷的长度(1),此处为0x1A == 26:5个字节的iBeacon标头+ 21个iBeacon有效载荷数据
FF:专有数据指标(1)
4C 00:公司ID(2),苹果
02:iBeacon类型
15:iBeacon数据长度(1)0x15 == 21:UUID 16字节,专业2字节,2字节 次要的,1字节TX Power
https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers/
https://www.bluetooth.com/specifications/bluetooth-core-specification/