使用制造商标识符和 UUID 以特定格式开始过滤 Alt 信标
Filtering Alt beacon with manufacturer identifier and UUID begins with specific format
我的一个用例需要过滤由特定制造商生成且 UUID 以特定字符串开头的所有信标。
ALT 信标库(https://altbeacon.github.io/android-beacon-library/javadoc/reference/org/altbeacon/beacon/Region.html) 提供区域class 以根据ID1、ID2、ID3 过滤信标。
我找不到任何选项来过滤具有特定制造商 ID 且 UUID 以特定字符开头的库级别的所有信标。
API 文档中包含用于配置 ALT Beacon 库以进行过滤的示例代码,值得赞赏,这有助于避免在应用程序中实施额外的过滤逻辑。
过滤 UUID 前缀并不常见,但可以通过定义自定义信标布局并将附加标识符定义为 UUID 前缀来实现。因为这个新的额外标识符将被视为一个独立的标识符,它不会像字符串前缀一样工作——它的默认表示 will.be 一个十六进制字符串(没有破折号)。
如果您想过滤 iBeacon 的 UUID 的前五个字节,您可以像这样设置一个信标解析器:
beaconManager.getBeaconParsers().add(new BeaconParser().
setBeaconLayout("m:2-3=0215,i:4-8,i:4-19,i:20-21,i:22-23,p:24-24")); // note the new 5 byte prefix identifier: i:4-8
现在每个信标将有四个标识符而不是三个,第一个是 UUID 的前 5 个字节,第二个是完整的 UUID,第三个是主要的,第四个是次要的。
您可以设置一个区域来匹配此 UUID 的前五个字节,2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6,如下所示:
Region region = new Region("prefixRegion", "0x2F234454CF", null, null);
如果您希望前缀的长度不同于 5,只需调整上面布局的 i:4-8 部分以不同于 8 的偏移量结束。
我的一个用例需要过滤由特定制造商生成且 UUID 以特定字符串开头的所有信标。
ALT 信标库(https://altbeacon.github.io/android-beacon-library/javadoc/reference/org/altbeacon/beacon/Region.html) 提供区域class 以根据ID1、ID2、ID3 过滤信标。
我找不到任何选项来过滤具有特定制造商 ID 且 UUID 以特定字符开头的库级别的所有信标。
API 文档中包含用于配置 ALT Beacon 库以进行过滤的示例代码,值得赞赏,这有助于避免在应用程序中实施额外的过滤逻辑。
过滤 UUID 前缀并不常见,但可以通过定义自定义信标布局并将附加标识符定义为 UUID 前缀来实现。因为这个新的额外标识符将被视为一个独立的标识符,它不会像字符串前缀一样工作——它的默认表示 will.be 一个十六进制字符串(没有破折号)。
如果您想过滤 iBeacon 的 UUID 的前五个字节,您可以像这样设置一个信标解析器:
beaconManager.getBeaconParsers().add(new BeaconParser().
setBeaconLayout("m:2-3=0215,i:4-8,i:4-19,i:20-21,i:22-23,p:24-24")); // note the new 5 byte prefix identifier: i:4-8
现在每个信标将有四个标识符而不是三个,第一个是 UUID 的前 5 个字节,第二个是完整的 UUID,第三个是主要的,第四个是次要的。
您可以设置一个区域来匹配此 UUID 的前五个字节,2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6,如下所示:
Region region = new Region("prefixRegion", "0x2F234454CF", null, null);
如果您希望前缀的长度不同于 5,只需调整上面布局的 i:4-8 部分以不同于 8 的偏移量结束。