如何通过 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 命令,例如
AT+MARJ0x1234 设置iBeacon Major number为0x1234(十六进制)
AT+MINO0xFA01 设置iBeacon Minor number为0xFA01(十六进制)
AT+ADVI5 设置广告间隔为5(546.25毫秒)
AT+NAMEYOURNAME 设置HM-10模块名称为YOURNAME。让这个独一无二。
AT+RESET 从您的 phone 以字符串格式通过蓝牙重新启动,没有任何定界符或换行符,即 \n
并确保设备处于可连接模式,否则它将无法工作
我使用这个 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 命令,例如
AT+MARJ0x1234 设置iBeacon Major number为0x1234(十六进制)
AT+MINO0xFA01 设置iBeacon Minor number为0xFA01(十六进制)
AT+ADVI5 设置广告间隔为5(546.25毫秒)
AT+NAMEYOURNAME 设置HM-10模块名称为YOURNAME。让这个独一无二。
AT+RESET 从您的 phone 以字符串格式通过蓝牙重新启动,没有任何定界符或换行符,即 \n 并确保设备处于可连接模式,否则它将无法工作