获取 beacon.proximityUUID 为空 ,这个为空beacon.distance就获取不到


#1

demo里面 beacon.distance的获取是通过默认的五个uuid,如何动态获取UUID?在ABBluetoothViewController.m获取proximityUUID 为空啊


#2

这个需要在未建立连接的情况下获得,请参考我们的示例代码


#3

哥。。你给我的这个示例代码是遍历[[tran transmitters]这个数组拿到的uuid,这个数组的uuid是写死的,不是动态获取的。 你提供的api中:[self.bluetoothMgr addCustomBeaconNameFilter:@“aikaka”];这个方法是连接蓝牙不是扫描的吗? demo里用这个方法拿不到UUID


#4

ABBluetoothViewController 是通过蓝牙扫描得到设备列表,进行连接设备,连接设备成功后,才能读取到proximityUUID,major,minor 等值。
你目前是否是想扫描周围的beacon 列表?


#5

对的,想扫描周围的beacon列表,同时拿到他的UUID。(因为我要用UUID去计算距离)我运行了ABBluetoothViewController,这个控制器可以扫描到周围的beacon列表,却拿不到UUID


#6

你要扫描周围的beacon,就只能通过 ABBeaconManager 去扫描, ABBluetoothViewController主要功能是对设备的修改配置操作。下面例子是扫描周围 微信摇一摇uuid 的beacon列表。
>
NSUUID *proximityUUID = [[NSUUID alloc] initWithUUIDString:@“FDA50693-A4E2-4FB1-AFCF-C6EB07647825”];
ABBeaconRegion *beaconRegion;
beaconRegion = [[ABBeaconRegion alloc] initWithProximityUUID:proximityUUID
identifier:@“FDA50693-A4E2-4FB1-AFCF-C6EB07647825”];
beaconRegion.notifyOnEntry = YES;
beaconRegion.notifyOnExit = YES;
beaconRegion.notifyEntryStateOnDisplay = YES;
[_beaconManager startRangingBeaconsInRegion:beaconRegion];


#7

我想问下,iBeacon的uuid不是我从设备中获取的,而是比如说服务器保存uuid,我从服务器拿到uuid,然后在利用uuid去扫描周围的iBeacon列表吗?我发现我通过蓝牙BLE获取的uuid和iBeacon的proximityUUID是不一样的。。


#8

蓝牙的uuid指的是哪个? CBPeripheral UUID 吗?这个uuid iOS7 之后 每台手机上扫描的结果都不一样,现在基本上已经弃用了。
你服务器上存储的应该为 iBeacon 的 proximityUUID, 通过 ABBeaconManager 扫描就能得到周围对应的beacon列表。


#9

需要说明一下,你利用iOS的蓝牙扫描到的UUID,在其它手机上是不能使用的,这个UUID其实是Apple为了保护用户隐私,随机生成的,在同一个手机上看到的UUID,是不变的,但是你换到其它手机去看,这个UUID又不相同。所以你不可能利用这个UUID去跟踪beacon

iBeacon的UUID我们称之为proximityUUID,这是beacon设备广播出来的,在iOS上,为了节电等因素考虑,你同时能够扫描的proximityUUID最多也就是20个,你开发app的时候需要考虑到这个因素。建议使用major, minor来区分beacon,proximityUUID尽量保持在一个比较少的数量。更多信息可以参考我们的FAQ

另外@markss说的很对,他是专家


#10

好的
1.那总结就是proximityUUID我不要自己获取,是出厂就设定好的,存到服务器上拿就可以了是吗?
2.iPhone获取的major和安卓一样的,都是1。不过iPhone获取的minor和安卓的不相同,安卓的获取的都为正数,苹果获取的有正有负,这种情况应该怎么处理,本想听你们的建议用minor来区分beacon


#11
  1. 对,一般出厂就设置好,不需要改动。
  2. major minor 的范围是 0-65535,出现负数就应该是bug了。

#12

额,刚发现出现负数那个列表是ABBluetoothViewController请求到的


#13

你看 ABBeaconViewController 这个,这个里面得到的结果是beacon list。


#14

恩,看到了,没有负数,对了