我正在研发iBeacon发射器和接收器。我已成功完成发射器部分,但接收器未识别发射信号的另一部分。任何人都可以帮我确定哪里出错了吗?还有什么我必须在.plist中添加。我已经尝试过stackoverflow的答案,但很遗憾地告诉我没有用。
RSTP
答案 0 :(得分:1)
您需要获得使用蓝牙的许可。
使用requestAlwaysAuthorization
(用于背景位置)或requestWhenInUseAuthorization
(用于前景)。
您还需要Info.plist中的NSLocationAlwaysUsageDescription
或NSLocationWhenInUseUsageDescription
键,并在提示中向用户显示消息,例如“我需要您的访问蓝牙权限”等等。
答案 1 :(得分:0)
在以前的系统版本中,它会自动通知用户授权何时使用位置服务。在iOS 8中,Apple更新了授权策略,该策略需要调用该函数来请求用户的授权。相应的SDK还提供了替代功能。
1.requestAlwaysAuthorization 首先,通知内容是必需的。调用该函数时,如果用户未授权App使用该服务,系统会将此段文本推送给用户。您可能需要将以下密钥添加到Info.plist:
NSLocationAlwaysUsageDescription 同时,应该添加书面描述,否则调用该函数将无效。其次,调用授权功能。
[locationManger requestAlwaysAuthorization];
答案 2 :(得分:0)
只是想到尝试调试问题的一方(尽管从你的代码中看起来一切都写得正确)。
首先,让我们看一下初始化你的监听器时是否有错误。要做到这一点,让我们实现这些代理,看看你是否收到了一些错误:
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
- (void)locationManager:(CLLocationManager *)manager monitoringDidFailForRegion:(CLRegion *)region withError:(NSError *)error
其次,在代理下面执行以检查位置管理员是否开始监控您的区域。您可NSLog
您所在的地区' UUID和标识符只是双重确定。
- (void)locationManager:(CLLocationManager *)manager didStartMonitoringForRegion:(CLRegion *)region
接下来,如果你回到上面,那么听众的一切似乎都很好。现在尝试几件事:
我有经验,位置管理不能立即工作。例如,一旦您检测到区域条目,如果您离开该区域,您可能无法立即回拨,然后如果您再次进入同一区域而未获得退出呼叫,则您将不会收到来电。我见过#3,在很多情况下工作。
另外,我不记得我从哪里得到的小费:)。开始测量您的信标和监控。有时这会产生更好的结果。