Android 设备可以作为 iBeacon,带有 Flag 吗?

Can an Android device act as an iBeacon, with Flag?

我想从androidphone传输iBeacon数据包,带有数据标志。

Data Flag (0x01) 是代表信标能力的蓝牙 GAP 规范。

我的情况:

目前,我正在尝试使用 BluetoothLeAdvertiser 做广告。但它并不像我想的那样有效。我发现,我只能做广告"Manufacturer specific data".

BluetoothManager manager = (BluetoothManager) getSystemService(BLUETOOTH_SERVICE);
mBluetoothAdapter = manager.getAdapter();
mBluetoothLeAdvertiser = mBluetoothAdapter.getBluetoothLeAdvertiser();

// Settings here

mBluetoothLeAdvertiser.startAdvertising(settings, getAdvertiseData(), mAdvertiseCallback);


我目前的成绩:


我想要的:

普通的 iBeacon 数据包(下图)有数据标志,Type 0x01。我想将此标志添加到我的 iBeacon 广告数据包中。
这意味着,我想将原始数据“0x020106”添加到数据包的头部。
我该如何存档?


等等:

我已经阅读了下面的问题,但这对我的问题没有帮助。
Can an Android device act as an iBeacon?


另外,我已经读到 android ble api 不支持数据标志。
但是评论是2015年的,现在有什么有希望的变化吗?

https://github.com/AltBeacon/android-beacon-library/issues/141

Unfortunately, this is not currently allowed by the Android BLE APIs, so the library cannot this.


如有任何帮助,我们将不胜感激。谢谢。

不幸的是,Android 的 Java BLE API 没有公开执行此操作的方法。我研究了这个主题来回答您提到的 Android Beacon Library Issue。 Java API 只允许您宣传服务数据或制造商数据。它们不够灵活,无法让您指定任何其他广告 PDU。截至 2016 年 5 月,这没有改变。

您可以通过降低到较低级别并与 C BlueDroid API 对话来执行您想要的操作。但是这样做需要有根设备,并且可能需要安装自定义 Android OS 图像才能让您访问。