iBeacon蓝牙didEnterRegion和didExitRegion方法永远不会被解雇

时间:2014-07-15 10:37:28

标签: ios objective-c bluetooth cllocationmanager ibeacon

在调用didEnterRegion后,didExitRegionstartMonitoringForRegion永远不会被解雇,这很奇怪。此外,didDetermineState可以按预期触发。

在目前阶段,我只根据Apple's sample code demo, Airlocated评估iBeacon技术。

因此,我只在文件didEnterRegion中实现两种方法,包括didExitRegionAPLAppDelegate.m,如下所示:

- (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region
{
    NSLog(@"Entered region: %@", region);
    [self sendLocalNotificationForBeaconRegion:(CLBeaconRegion *)region];
}

- (void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region
{
    NSLog(@"Exited region: %@", region);
}

已尝试过Bellow步骤,但没有效果。

  • 使用iOS7.1重置iPhone5 / iPhone4s
  • 配置后台模式,* .plist如下:
  
      
  1. 在项目信息或info.plist中 - >        自定义IOS目标属性 - >                   。添加"所需的背景模式"                   。在此添加两项 - >                               。"应用程序使用CoreBluetooth共享数据"                               。"应用程序注册位置更新"
  2.   项目能力中的
  3. - >        有背景模式
                     。检查" Loaction update"
                     。检查"充当蓝牙LE配件"                  。检查"使用蓝牙LE配件"
  4.   
  • 授权应用程序访问设备位置。

那么,有人可以给我一些建议吗?

提前致谢。

1 个答案:

答案 0 :(得分:2)

startRangingBeaconsInRegion之后添加startMonitoringForRegion方法,然后重试

[_locationManager startRangingBeaconsInRegion:demoRegion]; // demoRegion - 您创建的区域