当前位置: 首页 > 知识库问答 >
问题:

Android设备可以充当带标志的iBeacon吗?

黄丰
2023-03-14

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

数据标志(0x01)是表示信标能力的蓝牙间隙规范

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

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

// Settings here

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


我当前的结果:


我想要的:

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


等:

我已经阅读了下面的问题,但它对我的问题没有帮助。
Android设备可以充当iBeacon吗?


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

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

不幸的是,Android BLE API目前不允许这样做,因此库无法做到这一点。


任何帮助都将不胜感激。非常感谢。

共有1个答案

姜俊民
2023-03-14

不幸的是,Android的Java BLE API无法做到这一点。我研究这个主题是为了回答您提到的Android Beacon库问题。Java API只允许公布服务数据或制造商数据。它们只是不够灵活,无法让您指定任何其他广告PDU。截至2016年5月,这一情况没有改变。

您可以通过下拉到较低级别并与C BlueDroid API交谈来做您想做的事情。但是这样做需要一个root设备,并且可能需要安装一个自定义的Android操作系统映像来让您访问。

 类似资料:
  • Android设备能否充当iBeacon,并确定其他Android设备何时进入其范围?其他Android设备是否需要开启蓝牙? 如果一个顾客来到我的商店,他的设备上没有安装我的应用程序,iBeacon可以工作吗,还是他必须先安装应用程序?每天都有这么多顾客来我们的商店,但是如果他们没有安装我的应用程序,iBeacon的概念有用吗?

  • iOS7设备能否充当iBeacon并确定其他iOS7设备何时在其范围内?其他iOS7设备是否需要打开蓝牙?

  • 想改进这个问题吗 通过编辑此帖子,更新问题,使其只关注一个问题。 在回答另一个问题时,我看到“你也可以在根Android4.4.3设备上作为信标进行传输,但它需要安装一个具有系统权限的应用程序。” 如何做到这一点?

  • 我正试图写一个游戏计划,我需要这个问题的信息: Android设备可以像iOS设备一样用作iBeacon发射器吗?

  • 在Android4.3之前,支持蓝牙低能耗的Android设备只能充当中央设备。正如Android 4.3蓝牙LE文档中所给出的: 随着Android4.4 KitKat的推出,它现在是否也能表现为外围设备呢?我找不到任何关于这一点的文件。如果没有,那么我们是否必须等待Android 4.5才能在Android设备上获得BTLE外设模式?或者有没有其他方法可以让Android设备充当外围设备?

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