蓝牙 4.0 LE 框架,便于集成位置和导航服务流接收。在您的应用程序中获取标准 CoreLocation 数据。
。
。
一方面,您需要一个了解 GPS 的设备,如 iPhone。另一方面,您有一个需要 GPS 坐标但未嵌入 GPS 的设备,如 iPad。
。
。
蓝牙联盟提供一个标准接口,通过蓝牙 4.0(位置和导航服务,LNS)共享位置数据。它设计得非常高效(称为低功耗,LE)。但是,iOS 上的 CoreBluetooth 可能难以处理。
。
。
。
。
。
2 - GPS 发射器
它名为 LE GPS,可在以下位置获取
:
。
。
。
现在,您已有了一个 GPS 数据流器,您需要将此框架集成到您的 iOS 应用中,以接收数据。
。
。
版本要求
只需下载此框架,将其复制到您的项目仓库中。
完成后,将此框架拖放到 Xcode 界面中的 Frameworks。
或者点击 File(文件),添加现有文件并选择框架。
确保它被添加到与您的项目链接的框架
选择您的目标,转到通用选项卡,并检查 '链接的框架和库'。如果
LELocation 不在那里,点击 + 添加它。
其他必需的框架
您需要将您的项目与标准框架链接
请注意,此框架只能在支持蓝牙 4.0 的设备上工作。您仍然可以使用它在不支持蓝牙 4.0 的设备上(如 iPad 2),但它只能
失败地尝试启动 GPS 配对。
。
一旦框架添加到您的项目中,使用它非常简单。
导入文件 "LELocationManager.h",以访问 API。
您将有权访问 LELocationManager 单例。它将为您处理蓝牙
事务。
你基本上只需要设置一个委托对象,然后调用startUpdatingLocation方法。
方法
// start pairing with LE GPS and get locations
[LELocationManager sharedManager].delegate = self;
[[LELocationManager sharedManager] startUpdatingLocation];
startUpdatingLocation方法将检查蓝牙状态,启动LE GPS扫描并进行配对,然后处理数据流来创建标准的CoreLocation位置。
委托协议在"LELocationManagerDelegate.h"中可用,用于获取位置数据和错误处理的回调。
如果6秒后未找到GPS,管理器将返回空闲状态。
当你需要知道当前状态时,检查管理器状态属性,如果管理器空闲、搜索GPS或配对并接收位置数据。
调用stopUpdatingLocation方法来关闭蓝牙流并停止获取位置。
// stop getting locations
[[LELocationManager sharedManager] stopUpdatingLocation];
在iOS上,蓝牙必须由用户打开,无法通过编程方式切换电源。一个典型的回调错误是LELocationManagerErrorBluetoothOff。
你需要要求用户打开蓝牙。
享受吧!!
罗曼