信标库 - 发射器
Beacon Library - Transmitter
我用这个 代码创建了一个发射器应用程序,并且能够作为 iBeacon 进行传输。
问题 1:如果我从最近关闭应用程序,该应用程序将不再能够传输(我应该从前台服务调用它吗?任何来自 altbeacons 库的内置 API?)
问题 2:建立连接后我需要发送一个 10 个字符的字符串给扫描仪,但是 setDataFields() 只允许 6 位数字。
在后台保留 Android 应用程序 运行 有点棘手,这是保持发射器运行所需的操作。
Android Beacon 库会自动执行此操作以进行扫描,因此您可以使用该库的参考应用程序作为起点,并将传输开始放在应用程序 class 的 onCreate 方法中。
这将使发射器在 Android 5-7 上几乎永远运行。在 Android 8 上,除非您构建前台服务,否则每 15 分钟中您只能在后台 运行 大约 5 分钟。
编辑
如果您希望通告多个字节的数据,最好的办法是将其编码在 16 字节的 ID1 (ProximityUUID) 字段中。您可以保留前几个字节来确定信标是否属于您,然后使用最后 10 个左右的字节来编码您的数据。在接收方,您可以使用 identifier.getBytes()
将您的第一个标识符转换为字节数组,以便您可以访问其中的数据元素。
我用这个
问题 1:如果我从最近关闭应用程序,该应用程序将不再能够传输(我应该从前台服务调用它吗?任何来自 altbeacons 库的内置 API?)
问题 2:建立连接后我需要发送一个 10 个字符的字符串给扫描仪,但是 setDataFields() 只允许 6 位数字。
在后台保留 Android 应用程序 运行 有点棘手,这是保持发射器运行所需的操作。
Android Beacon 库会自动执行此操作以进行扫描,因此您可以使用该库的参考应用程序作为起点,并将传输开始放在应用程序 class 的 onCreate 方法中。
这将使发射器在 Android 5-7 上几乎永远运行。在 Android 8 上,除非您构建前台服务,否则每 15 分钟中您只能在后台 运行 大约 5 分钟。
编辑
如果您希望通告多个字节的数据,最好的办法是将其编码在 16 字节的 ID1 (ProximityUUID) 字段中。您可以保留前几个字节来确定信标是否属于您,然后使用最后 10 个左右的字节来编码您的数据。在接收方,您可以使用 identifier.getBytes()
将您的第一个标识符转换为字节数组,以便您可以访问其中的数据元素。