AWARE: 位置
该位置传感器可为客户提供最佳的当前位置估计,自动提供。位置数据由 Core Location 提供。
要求
iOS 10 或更高版本。
安装
com.aware.ios.sensor.locations 通过 CocoaPods 提供。
- 要安装它,简单地将以下行添加到 Podfile 中
pod 'com.awareframework.ios.sensor.locations'- 将 com.aware.ios.sensor.locations 库导入到源代码中。
import com_awareframework_ios_sensor_locations- 打开您的项目(*.xcworkspace),并将
NSLocationAlwaysAndWhenInUseUsageDescription和NSLocationWhenInUseUsageDescription添加到 Info.plist 中。
公共函数
位置传感器
init(config:位置传感器.配置?): 使用可选配置初始化位置传感器。start(): 使用可选配置启动位置传感器。stop(): 停止服务。
位置传感器.配置
用于保存传感器配置的类。
字段
sensorObserver: 位置观察者?追踪数据更新的回调。(默认 =null)frequency: Int检查位置的频率,单位为秒。默认每180秒检查一次。将值设置为0(零)将保持GPS位置跟踪始终开启。(默认 = 180)accuracy: IntGPS位置的最小可接受精度,单位为米。默认值为150米。将值设置为0(零)将保持GPS位置跟踪始终开启。(默认 = 150)expirationTime: Int64位置被认为过时的流逝时间,单位为秒。默认值为300秒。(默认 = 300)saveAll: Boolean是否保存所有位置更新。(默认 =false)enabled: Boolean传感器是否启用。(默认 =false)debug: Boolean启用/禁用将日志记录到Logcat。 (默认 =false)label: String数据的标签。(默认 = "")deviceId: String与事件和传感器相关联的设备ID。(默认 = "")- 数据库加密密钥:
dbEncryptionKey。 (默认 =null) - 数据库类型:引擎
dbType: Engine保存数据所使用的数据库引擎。 (默认 =Engine.DatabaseType.NONE) - 数据库路径:字符串
dbPath: String数据库路径。 (默认 = "aware_locations") - 数据库主机:字符串
dbHost: String同步数据库的主机。 (默认 =null)
广播
已执行的广播
LocationsSensor.ACTION_AWARE_LOCATIONS发生新位置可用时触发。LocationsSensor.ACTION_AWARE_GPS_LOCATION_ENABLED当GPS位置激活时触发。LocationsSensor.ACTION_AWARE_GPS_LOCATION_DISABLED当关闭GPS位置时触发。
接收到的广播
LocationsSensor.ACTION_AWARE_LOCATIONS_START:接收到的用于启动传感器的广播。LocationsSensor.ACTION_AWARE_LOCATIONS_STOP:接收到的用于停止传感器的广播。LocationsSensor.ACTION_AWARE_LOCATIONS_SYNC:接收到的用于向主机发送同步尝试的广播。LocationsSensor.ACTION_AWARE_LOCATIONS_SET_LABEL:接收到的用于设置数据标签的广播。标签被视为在intent extras的LocationsSensor.EXTRA_LABEL字段中。
数据表示形式
地点数据
包含地点配置文件。
| 字段 | 类型 | 描述 |
|---|---|---|
| 纬度 | 双精度浮点数 | 纬度,以度为单位。 |
| 经度 | 双精度浮点数 | 经度,以度为单位。 |
| 航向 | 双精度浮点数 | 设备行驶的方向,以度为单位,相对于正北。 |
| 速度 | 浮点数 | 设备的瞬时速度,以米/秒为单位。 |
| 海拔 | 双精度浮点数 | 海拔,以米为单位。 |
| 楼层 | 双精度浮点数? | 用户所在的建筑物的逻辑楼层。 |
| 水平精度 | 双精度浮点数 | 位置的不确定半径,以米为单位。 |
| 垂直精度 | 双精度浮点数 | 海拔值的精度,以米为单位。 |
| deviceId | 字符串 | AWARE设备的UUID |
| 标签 | 字符串 | 可定制的标签。适用于数据校准或可追溯性。 |
| 时间戳 | 长整型 | 自1970年以来的Unix时间(毫秒) |
| 时区 | 整型 | 设备的时区 |
| os | 字符串 | 设备的操作系统(例如,iOS) |
示例用法
// To initialize the sensor
let locationSensor = LocationsSensor.init(LocationsSensor.Config().apply{config in
config.sensorObserver = Observer()
config.debug = true
config.dbType = DatabaseType.REALM
// more configuration...
})
// To start the sensor
locationSensor?.start()
// To stop the sensor
locationSensor?.stop()class Observer:LocationsObserver {
func onLocationChanged(data: LocationsData) {
// your code here
}
}作者
Yuuki Nishiyama, [email protected]
相关链接
许可
版权所有 © 2021 AWARE 移动上下文检测中间件/框架(http://www.awareframework.com)
遵循 Apache 许可协议,版本 2.0(“许可”);除非遵守许可协议或经书面同意,否则不得使用此文件。可以在以下位置获取许可证副本:
https://apache.ac.cn/licenses/LICENSE-2.0 根据 applicable law 或书面协议,在本许可下分发的软件是在“现状”的基础上分发的,不提供任何明示或暗示的保证或条件。有关许可证具体许可和限制性条款,请参阅许可证。