iOS设备iBeacon扫描总结

image

iBeacon是苹果公司提出的“一种可以让附近手持电子设备检测到的一种新的低功耗、低成本信号传送器”的一套可用于室内定位系统的协议。 这种技术可以使一个智能手机或其他装置在一个iBeacon基站的感应范围内执行相应的命令

1、初始化CLLocationManager和CLBeaconRegion

let locationManager = CLLocationManager()

let beaconRegion: CLBeaconRegion = {
    let region = CLBeaconRegion(proximityUUID: NSUUID(UUIDString: "7B1C1C64-077E-4D23-9F49-7E644A13B5A9")!, identifier: "7B1C1C64-077E-4D23-9F49-7E644A13B5A9")
    region.notifyEntryStateOnDisplay = true
    return region
}()

2、开始扫描

func start() {
    stop()
    
    locationManager.delegate = self
    locationManager.startRangingBeaconsInRegion(beaconRegion)
}

3、实现CLLocationManagerDelegate代理方法

打印授权状态

func locationManager(manager: CLLocationManager, didChangeAuthorizationStatus status: CLAuthorizationStatus) {
    if status == .AuthorizedAlways {
        print("Location Access (Always) granted!")
    } else if status == .AuthorizedWhenInUse {
        print("Location Access (When In Use) granted!")
    } else if status == .Denied || status == .Restricted {
        print("Location Access (When In Use) denied!")
    }
}

扫描到设备,accuracy实际距离

func locationManager(manager: CLLocationManager, didRangeBeacons beacons: [CLBeacon], inRegion region: CLBeaconRegion) {
    print(">>>发现设备: becons: \(beacons)")
    print("------------------------------")
    for bc in beacons {
        print (bc.accuracy)
    }
}

4、停止扫描

func stop() {
    locationManager.stopRangingBeaconsInRegion(beaconRegion)
    locationManager.delegate = nil
    
}

代码参考
https://github.com/jackyshan/bleIbeaconscanner/blob/master/IBeaconScanner.swift

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 2015.10.19 airlocate 本文摘抄加个人总结 ========= airlocate显示如何使用这...
    Puiwah_Wai阅读 5,375评论 2 5
  • 1. iBeacon是什么? 维基百科:iBeacon是苹果公司提出的"一种可以让附近手持电子设备检测到的一种新的...
    丨n水瓶座菜虫灬阅读 4,435评论 5 9
  • 原文链接:iBeacons Tutorial with iOS and Swift原文日期:2015/08/07译...
    梁杰_numbbbbb阅读 1,991评论 1 3
  • @end 与之前一样,你需要初始化位置管理器并设置它们的 delegate 。 在 application:did...
    LiWeiJ阅读 2,181评论 0 0
  • 再看见这些水珠子,坦白讲,心里还是有那么点复杂的情绪。 毕竟当时,为了拍一只趴在荷叶上的小青蛙,脚滑跌进了池塘里。...
    rollingstarky阅读 189评论 0 1