如何通过 android beacon 库连接到 beacon 并更改 beacon 的数据字段

How to connect to beacon by android beacon library and change beacon's data fields

我使用这个 sdk:http://altbeacon.github.io/android-beacon-library/samples.html 我的应用程序已经检测到所有信标 (AprilBeacons),我可以从信标获取所有信息。但是我应该更改 major\minor 等字段,并且 我不知道如何连接到信标并保存新数据。

我创建了新的信标生成器,例如:

Beacon changedBeac = new Beacon.Builder()
                         .setId1("2f234454-cf6d-4a0f-adf2-f4911ba9ffa6")
                         .setId2("1")
                         .setId3("2")
                         .setManufacturer(0x0118)
                        .setTxPower(-59)
                        .setDataFields(Arrays.asList(new Long[]{0l}))
                        .build();

那么如何发送新的beacon信息给选中的beacon?

遗憾的是,图书馆无法执行此操作。

问题是硬件信标的标识没有配置标准,只有检测信标和发送信标。每个硬件信标制造商都有不同的配置信标标识符的方法。一些制造商有一个配置标识符的应用程序,一些有一个专有的 SDK。有些厂家根本不允许。

如果您想配置 April Beacon,请咨询制造商以获取说明。

您上面提到的 API 旨在使 Android 5+ 设备 传输 作为信标。他们不配置外部硬件信标。

如果您使用 CC2540 或 CC2541 作为信标,您可以向设备发送 AT 命令,例如

A​​T+MARJ0x1234 设置iBeacon Major number为0x1234(十六进制)

A​​T+MINO0xFA01 设置iBeacon Minor number为0xFA01(十六进制)

A​​T+ADVI5 设置广告间隔为5(546.25毫秒)

A​​T+NAMEYOURNAME 设置HM-10模块名称为YOURNAME。让这个独一无二。

A​​T+RESET 从您的 phone 以字符串格式通过蓝牙重新启动,没有任何定界符或换行符,即 \n 并确保设备处于可连接模式,否则它将无法工作