首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS应用程序无法检测到它在CLBeaconRegion中

iOS应用程序无法检测到它在CLBeaconRegion中
EN

Stack Overflow用户
提问于 2019-07-03 03:53:05
回答 1查看 90关注 0票数 0

我们从kontakt.io购买了许多信标,并正在尝试使用我们的iOS应用程序进行基本检测。蓝牙已打开,我的应用程序具有“始终”定位权限。我下载了Locate应用程序,并输入了近邻UUID (它们都共享),该应用程序可以看到信标,它们在物理上就在我旁边。然而,我的应用程序中的委托方法的行为并不像预期的那样。

我们正在构建一个CLBeaconRegion并调用以下代码:

代码语言:javascript
复制
[self.locationManager startMonitoringForRegion:newRegion];
[self.locationManager startRangingBeaconsInRegion:(CLBeaconRegion*) newRegion];

然后在短暂的超时之后调用

代码语言:javascript
复制
[self.locationManager requestStateForRegion:newRegion];

对于监控案例,我们的委托方法:

代码语言:javascript
复制
- (void)locationManager:(CLLocationManager *)manager didDetermineState:(CLRegionState)state forRegion:(nonnull CLRegion *)region {          

都会被召唤。我确认region参数中的UUID与我传递的要监视的UUID匹配。但状态始终是CLRegionStateOutside或CLRegionStateUnknown。我希望它是CLRegionStateInside。

对于测距,委托方法:

代码语言:javascript
复制
-(void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region {

正在被调用(不知何故?不确定是不是因为requestStateForRegion),但是数组是空的。

我可以采取哪些步骤来解决此问题?我对幕后发生的事情感到有点迷惑

EN

回答 1

Stack Overflow用户

发布于 2019-07-03 22:10:06

我使用的是CLBeaconRegion的初始化器,它接受一个主要值和次要值,并为这些值传递0,尽管信标广播的是非零值。如果您只是尝试启动和运行信标,并且只关注UUID,请记住,您需要暂时适当地排除这些主要和次要的值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56859213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档