iBeacon规格说明:
UUID、主值和次值提供iBeacon的标识信息。
主要值和次要值用于区分区域内的产品或元素。苹果公司的文档非常清楚如何做到这一点,商店的例子也非常好。
然而,只有当每个区域(或子区域)有一个元素类别时,所有这些都能很好地工作,但是如果我们希望应用程序能够区分同一区域内具有相同次要和主要元素的元素,这就不太好了。
是否有其他与iBeacon关联的唯一标识符可以被监视/检测,以便我可以区分具有相同次要值和主要值的iBeacon?
编辑:附加信息
为了测试这一点,我创建了两个具有相同UUID和相同主值和次值的iBeacon,然后在我指定的UUID内开始监视iBeacon。
我在区域范围内为iBeacons实现的回调代码如下:
-(void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region {
NSLog(@"Did range %lu beacon in region %@", (unsigned long)[beacons count], region.identifier);
for (int i=0; i<[beacons count]; i++) {
CLBeacon *beacon = [beacons objectAtIndex:i];
// <- breakpoint!
NSString *_cnt = [[NSString alloc] initWithFormat:@"Number of beacons is : %lu and the current one %i is %f away from you %@",(unsigned long)[beacons count], i, beacon.accuracy, beacon.description];
}
}
在向信标线添加断点时,我看到检测到的两个CLBeacon对象具有相同的信息:
CLBeacon (uuid:<__NSConcreteUUID 0x17003d8e0> 74278BDA-B644-4520-8F0C-720EAF059935, major:20, minor:0, proximity:1 +/- 0.17m, rssi:-42)
CLBeacon (uuid:<__NSConcreteUUID 0x17003e840> 74278BDA-B644-4520-8F0C-720EAF059935, major:20, minor:0, proximity:2 +/- 0.28m, rssi:-47)
因此,到目前为止,除非我指定一个主要值和次要值,否则我无法区分它们。
这是我用来配置iBeacons的应用程序的屏幕截图(没有其他字段可以配置):
我想知道在蓝牙信号中是否有某种唯一的标识符来标识每个硬件。
您希望“能够区分同一区域内具有相同次要和主要元素的元素”的说法没有意义,因为UUID、主要和次要元素的组合是您能得到的最具体的组合。
如果需要获得更大的地理覆盖范围,您可以有多个具有相同UUID/主要/次要的信标,但这些信标将无法彼此区分。
如何将意义应用于主要值和次要值完全取决于您-如果您需要区分两个位置,只需应用不同的次要值即可。
UUID、主修和辅修之间的组合应该是独特的。不应该有两个相同组合的信标,这是信标标识符!
这其实是一个普遍存在的问题,很难解决。虽然最佳实践通常认为不同的信标不应该共享相同的ProximityUUID/主/次,但有时会有合法的边缘情况,即多个信标在同一个地方传输相同的标识符。例如,在Radius Networks,我们将默认标识符放入信标中,因此如果您订购其中两个信标,它们最初将具有相同的标识符,直到您更改它们。)
使用CoreLoctionAPI,具有相同标识符的两个不同的信标将显示为didRangeBeacons: InZone:回调中的两个信标。这是因为在内部,iOS使用硬件地址保持唯一性。不幸的是,CorePlace不会公开硬件mac地址或指示哪个信标与哪个信标具有相同的标识符。
在前台使用CoreBluetooth API,可以为看到的每个iBeacon获取回调。虽然您无法获取它们的硬件mac地址,但iOS会为它们分配一个唯一的标识符(可能基于mac地址的散列),这样您就可以区分它们了。不幸的是,iOS不允许您使用CoreBluetooth读取广告内容,因此您无法读取iBeacon标识符。你所能做的就是数一数周围有多少不同的蓝牙设备,它们可能是iBeacons,也可能不是iBeacons。
通过使用设备出现的时间戳和它们的RSSI读数,可以做一些黑客的把戏来尝试和关联来自核心蓝牙和核心位置的信息。但是当许多信标在周围时,这些技巧并不非常可靠,容易失败。
问题内容: 我正在尝试在一个项目中使用KárolyLőrentey的B树。但是,我遇到了一个问题,即我不能声明不合格,因为该名称在Foundation的(如在Swift 3中导入的)和的之间发生冲突。 要解决此冲突,通常可以使用该名称,然后使用即可。但是,该模块还包含一个名为的类。如果我写的话,Swift认为我指的是嵌套在该类型中的名为type的类型。 如果不这样做,我将根本无法使用该名称。 如何
问题内容: 我有两个表,关键字和数据。 表关键字具有2列(id,关键字),表数据具有3列(id [keywords.id的外键,名称,值]。 我正在使用此查询: 它返回类似: 每个id的值可以为0到3(将来可能会更多)。 如何在同一行中检索具有相同ID的所有行? 喜欢 我想这样做是因为我希望能够对值进行排序。 问题答案: 像这样使用: 另外,您可能需要根据需要获取确切的值顺序。像这样:
我的应用程序必须通过蓝牙广播iBeacon消息。iBeacon消息应该固定在特定的UUID中,主要和次要。 如何在不使用任何第三方应用程序的情况下完成它?(我可以使用库,我只是不希望用户需要另一个应用程序来使用这个应用程序。我更喜欢这个应用程序在使用时是自我依赖的)。 编辑:我只使用google ble文档构建了它,并且没有使用任何其他库。不过,我愿意实施任何使其工作的建议。
我们希望在Kafka streams应用程序中使用GlobalKTable。输入主题(ktable/kstream)有N个分区,并且GlobalKTable将用作流应用程序中的字典。 GlobalKTable的输入主题必须与其他输入主题(它们是KTable/KStream的源)具有相同数量的分区吗? 据我所知,答案是否定的(它不受限制,主题也可能有M个分区,其中N>M),因为GlobalKTabl
我正在尝试构建一个选择唯一值组的查询。我知道如何对值进行分组并选择不同的值,但我不知道如何选择不同的值组,而不管所考虑元素的顺序如何。更准确地说: 我的XML是这样的: 在这里,我想将