Tag: 蓝牙信标

iBeacons和iOS:Rantmedia Hack Day

什么是iBeacon? iBeacon是由Apple开发的协议,该协议利用低功耗蓝牙将信息广播到收听设备和应用程序。 iBeacon广播三个重要信息:其UUID,主要ID和次要ID。 这些用于识别单个信标,并允许应用程序在靠近信标的情况下做出适当响应。 例如,事件中心可以设置一些iBeacon并将它们配置为使用相同的UUID。 在这种情况下,UUID标识信标的所有者。 每个信标可​​以被赋予不同的主要或次要ID。 然后,应用程序可以侦听具有给定UUID的任何信标,并在进入信标覆盖的每个不同区域时执行操作。 对于我们的Hack Day,我们使用Android应用程序BeaconToy设置了多个具有不同值的信标。 iBeacon与iOS集成 苹果在其CoreLocation和CoreBluetooth框架中包括对iBeacons的支持。 如果要编写只需要侦听iBeacon的应用程序,则需要使用CoreLocation,而如果要从应用程序中作为iBeacon广播,则需要CoreBluetooth框架。 出于Hack Day的目的,我们正在编写一个仅监听和响应信标而不是广播的应用程序。 构建一个iBeacons应用 如果您想继续,可以找到我们在Github上构建的应用程序。 总览 该应用程序使用CoreLocation的CLLocationManager监视CLBeaconRegion。 输入信标区域时,它将开始对区域内的所有信标进行测距。 远程信标以其UUID,主要和次要ID以及相对接近程度显示在表格视图中。 当输入区域时,如果应用程序未激活,我们还使用后台信标监视来显示通知。 创建一个新项目,并使用UITableViewController设置基本UI。 设置CoreLocation 在开始监视之前,我们需要设置视图控制器以导入CoreLocation框架,并设置CLLocationManager并使表视图控制器符合CLLocationManagerDelegate协议: 导入 UIKit 导入 CoreLocation 类 ViewController : UITableViewController , CLLocationManagerDelegate { 让 locationManager = CLLocationManager () 覆盖 func viewDidLoad (){ 超级 .viewDidLoad() locationManager.delegate = 自我 如果 CLLocationManager .authorizationStatus()!= .authorizedAlways { […]