求推荐可在单设备同时模拟多个BLE Beacon的应用
多BLE Beacon模拟方案(单设备)
Android 平台
- Beacon Simulator Pro:付费版本支持同时模拟最多10个Beacon,可自定义每个Beacon的UUID、Major/Minor值、广播间隔和传输功率,Google Play可获取(免费版仅支持单Beacon)。
- 自定义开发:利用Android原生
BluetoothLeAdvertiserAPI,通过代码创建多组广播配置并启动。核心代码示例:
// 构建多个Beacon广播数据 List<AdvertiseData> beaconList = new ArrayList<>(); for (int minor = 1; minor <= 5; minor++) { // 生成iBeacon格式的厂商数据 byte[] payload = generateIBeaconPayload("E2C56DB5-DFFB-48D2-B060-D0F5A71096E0", 1, minor); AdvertiseData advertiseData = new AdvertiseData.Builder() .addManufacturerData(0x004C, payload) // Apple厂商ID .build(); beaconList.add(advertiseData); } // 逐个启动广播 BluetoothLeAdvertiser advertiser = BluetoothAdapter.getDefaultAdapter().getBluetoothLeAdvertiser(); AdvertiseSettings settings = new AdvertiseSettings.Builder() .setAdvertiseMode(AdvertiseSettings.ADVERTISE_MODE_LOW_POWER) .setTxPowerLevel(AdvertiseSettings.ADVERTISE_TX_POWER_MEDIUM) .setConnectable(false) .build(); for (AdvertiseData data : beaconList) { advertiser.startAdvertising(settings, data, new AdvertiseCallback() { @Override public void onStartSuccess(AdvertiseSettings settingsInEffect) { super.onStartSuccess(settingsInEffect); } }); }
注:需申请BLUETOOTH_ADVERTISE权限,Android 12+还需BLUETOOTH_SCAN和BLUETOOTH_CONNECT权限
iOS 平台
- Beacon Simulator(付费版):App Store中的这款付费应用支持同时模拟最多8个iBeacon,每个Beacon可独立配置UUID、Major/Minor值和传输功率,适配iOS 13+。
- 临时开发工具:使用CoreBluetooth框架的
CBPeripheralManager,通过轮播方式广播多个Beacon数据(iOS系统限制同一时间只能有一个活跃广播,可通过定时切换实现多Beacon模拟)。示例代码片段:
var peripheralManager: CBPeripheralManager! var beaconDatas: [Dictionary<String, Any>] = [] func setupBeacons() { // 创建多个iBeacon广告数据 for minor in 1...3 { let uuid = UUID(uuidString: "E2C56DB5-DFFB-48D2-B060-D0F5A71096E0")! let beaconRegion = CLBeaconRegion(proximityUUID: uuid, major: 1, minor: minor, identifier: "Beacon-\(minor)") let advertisementData = beaconRegion.peripheralData(withMeasuredPower: -59) as! [String: Any] beaconDatas.append(advertisementData) } } func startRotatingAdvertise() { var index = 0 Timer.scheduledTimer(withTimeInterval: 0.5, repeats: true) { timer in self.peripheralManager.stopAdvertising() self.peripheralManager.startAdvertising(self.beaconDatas[index]) index = (index + 1) % self.beaconDatas.count } }
Windows 平台
- WSL + BlueZ:通过Windows子系统Linux安装BlueZ工具,使用命令行创建多Beacon广播:
# 启用蓝牙设备 sudo hciconfig hci0 up # 模拟第一个iBeacon(Minor=0000) 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 C8 00 # 模拟第二个iBeacon(Minor=0001) 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 01 C8 00
注:需确保WSL已连接主机蓝牙设备,部分蓝牙适配器可能不支持多广播
- Windows桌面工具:微软商店搜索
BLE Multi-Beacon Simulator,部分付费工具支持可视化配置多个Beacon并同时广播。
内容的提问来源于stack exchange,提问作者Jamie C
相关产品推荐
相关产品推荐

