CoreLocation 不能与 Estimotes Beacon 一起使用

Posted

技术标签:

【中文标题】CoreLocation 不能与 Estimotes Beacon 一起使用【英文标题】:CoreLocation can't use with Estimotes Beacon 【发布时间】:2015-11-19 14:40:43 【问题描述】:

我使用 Estimotes 室内位置构建了一个应用程序,任何我使用 CoreLocation 来查找我们的信标,我的应用程序都会更改 label.text。应用程序可以运行,但没有工作,label.text 不能改变。

   override func viewDidLoad() 
   super.viewDidLoad()

    let path = NSBundle.mainBundle().pathForResource("location", ofType: "json")
    do 
    let content = try String(contentsOfFile: path!, encoding: NSUTF8StringEncoding)

    let locationSetup = ESTLocationBuilder.parseFromJSON(content)

    //set up delegate
    manager.delegate = self
    locationManager.delegate = self  
 if (CLLocationManager.authorizationStatus() !=  CLAuthorizationStatus.AuthorizedWhenInUse) 
        locationManager.requestWhenInUseAuthorization()
    
    locationManager.startRangingBeaconsInRegion(region)

  func locationManager(manager: CLLocationManager, didRangeBeacons beacons:[CLBeacon], inRegion region: CLBeaconRegion)

    let knownBeacons = beacons.filter $0.proximity != CLProximity.Unknown 
    if (knownBeacons.count > 0)
        let closestBeacon = knownBeacons[0] as CLBeacon
        if(closestBeacon.minor.integerValue == 41016)
        
            self.snow.text = "find"
        
    
 

【问题讨论】:

尝试在 didRangeBeacons:inRegion: 和两个 if 语句中添加 NSLog 语句。打印哪些日志行? 我在代码中添加 NSLog,如果 (knownBeacons.count > 0) NSLog("find beacon") 和 if(closestBeacon.minor.integerValue == 41016) NSLog("catch") 但是Output不能打印任何东西,不知道为什么这个函数不能运行。 你在代码的什么地方初始化locationManager?我没看到。它可能为零吗? let locationManger = CLLocationManager(),我已经在课堂上声明了 【参考方案1】:

首先要尝试:

我会将locationManger = CLLocationManager() 的初始化移到类实例声明之外和viewDidLoad 内。我在对象构造过程中看到了初始化位置管理器的问题。

【讨论】:

谢谢,我找到了我的问题。我在测试 App 时忘记允许 corelocaiotn,所以我不能使用

以上是关于CoreLocation 不能与 Estimotes Beacon 一起使用的主要内容,如果未能解决你的问题,请参考以下文章

Estimote Beacon - 如何将 EstimoteTelemetry 与 Beacon 匹配

如何通过 estimote android sdk 更改 estimote 信标的 UUID?

ESTBeaconConnection 使 Estimote 信标无法被发现

测距后有啥方法可以使用核心蓝牙连接信标

Java中的getView和Beacon(Estimote)问题

Ionic 应用程序未在 iOS 上检测到 iBeacons (cordova-plugin-estimote)