这是我的方法。
使用UUID和这样的标识符来广播信标。
NSUUID *uuid = [[NSUUID alloc] initWithUUIDString:@"B57A1B68-48B7-4DBF-914C-760D08FBB87B"];
// Initialize the Beacon Region
self.myBeacon = [[CLBeaconRegion alloc] initWithProximityUUID:uuid
major:1
minor:1
identifier:@"com.mycompany.xxx"];
像这样提取信标信息
-(void)locationManager:(CLLocationManager*)manager
didRangeBeacons:(NSArray*)beacons
inRegion:(CLBeaconRegion*)region
{
CLBeacon *beacon = [beacons firstObject];
NSLog(@"becons details = %@",beacon);
}
结果
becons details = CLBeacon (uuid:<__NSConcreteUUID 0x178038200> B57A1B68-48B7-4DBF-914C-760D08FBB87B, major:1, minor:1, proximity:1 +/- 0.11m, rssi:-40)
这是我获得主要价值的方法
NSString *major = [NSString stringWithFormat:@"%@", foundBeacon.major];
请有人帮我如何从广播信标中获取标识符值“com.company.xxx”吗?
谢谢。
答案 0 :(得分:1)
不幸的是,你做不到。这些标识符仅在同一个应用程序中有用,但它们实际上并没有在蓝牙数据包中进行物理广播。
另一种方法是让应用程序充当外围设备并宣传包含此公司标识符值的服务和特征,但这种方法不像iBeacons那样被动,并且需要集中连接到外围设备并阅读特征值。它并不像听起来那么难,但实际上取决于你的用例。