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: Int
GPS位置的最小可接受精度,单位为米。默认值为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 或书面协议,在本许可下分发的软件是在“现状”的基础上分发的,不提供任何明示或暗示的保证或条件。有关许可证具体许可和限制性条款,请参阅许可证。