停止测距信标区域
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了停止测距信标区域相关的知识,希望对你有一定的参考价值。
我正在开发一个具有巡视模式选项的信标应用程序。因此,当用户点击开关打开巡视时,我正在创建信标区域并使用下面的代码我正在监听信标
NSUUID *uuid = [[NSUUID alloc] initWithUUIDString:beacon.beaconID];
CLBeaconRegion *region = [[CLBeaconRegion alloc] initWithProximityUUID:uuid major:[beacon.major integerValue] minor:[beacon.minor integerValue] identifier:beacon.identifier];
[self.locationManager startMonitoringForRegion:region];
region.notifyEntryStateOnDisplay = YES;
region.notifyOnEntry = YES;
region.notifyOnExit = YES;
[self.locationManager startRangingBeaconsInRegion:region];
现在停止测距,我知道我必须使用
[self.locationManager stopRangingBeaconsInRegion:region];
但是如何获得为监控创建的相同CLBeaconRegion?我应该将CLBeaconRegion保存在数组中吗?
答案
CLLocationManager
有一个名为rangedRegions
的财产,这是目前所有地区的NSSet
。所以如果你做的事情如下:
for (CLBeaconRegion *region in self.locationManager.rangedRegions) {
[self.locationManager stopRangingBeaconsInRegion:region];
}
如果你想停止所有地区的测距。
另一答案
让我告诉你我们如何首先为所有可用的信标设置范围,然后如何监控特定的信标。
NSUUID *uuid = [[NSUUID alloc] initWithUUIDString:beacon.beaconID];
CLBeaconRegion *region = [[CLBeaconRegion alloc] initWithProximityUUID:uuid identifier:beacon.identifier];
[self.locationManager startRangingBeaconsInRegion:region];
这将为您提供Range中与uuid匹配的所有可用信标。
然后你需要开始监控特定的信标。(比如信标)
CLBeaconRegion *region = [[CLBeaconRegion alloc] initWithProximityUUID:beacon.uuid major:[beacon.major integerValue] minor:[beacon.minor integerValue] identifier:beacon.identifier];
[self.locationManager startMonitoringForRegion:region];
region.notifyEntryStateOnDisplay = YES;
region.notifyOnEntry = YES;
region.notifyOnExit = YES;
当您进入或离开信标区域时,这将通知您
如果您需要其他任何东西,请告诉我
以上是关于停止测距信标区域的主要内容,如果未能解决你的问题,请参考以下文章