【问题标题】:Can an Android device act as an iBeacon, with Flag?Android 设备可以作为 iBeacon 使用 Flag 吗?
【发布时间】:2016-05-17 11:40:28
【问题描述】:

我想从安卓手机传输 iBeacon 数据包,带有数据标志。

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

我的情况:

目前,我正在尝试使用BluetoothLeAdvertiser 做广告。但它不像我想的那样工作。我发现,我只能宣传“制造商特定数据”。

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

// Settings here

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


我目前的结果:


我想要什么:

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


等等:

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


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

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

很遗憾,Android BLE API 目前不允许这样做,因此库不能这样做。


任何帮助将不胜感激。谢谢。

【问题讨论】:

  • iBeacon 是 Apple 自己的 BLE 的一部分。如果没记错的话,不久前就 AltBeacon 支持库和 Apple 发生了一场法律纠纷。
  • 感谢您的评论,t0mm13b。我明白。我的意思是,我可以在“信标包”中添加“数据标志(0x01)”和“制造商特定数据(0xFF)”吗?
  • 你真的先试过了吗?
  • 我尝试了“iBeacon 格式”、“Alt 信标格式”,发送信标包成功。但我未能添加“数据标志”。我想将原始数据“0x020106”添加到我的信标包中。我可以存档吗?

标签: android ibeacon android-ibeacon


【解决方案1】:

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

您可以通过下降到较低级别并与 C BlueDroid API 对话来做您想做的事情。但这样做需要有根设备,并且可能需要安装自定义 Android 操作系统映像才能访问。

【讨论】:

    猜你喜欢
    • 2013-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-22
    • 2013-08-22
    相关资源
    最近更新 更多