AWARE:活动识别
Aware Activity Recognition (com.awareframework.ios.sensor.activityrecognition) 是 AWARE 框架的插件之一,AWARE 框架是一个开源的环境感知工具。这个插件允许我们管理由 iOS CMMotionActivityManager 提供的运动活动数据(如跑步、行走和汽车)。
需求
iOS 10 或更高版本
安装
com.aware.ios.sensor.activityrecognition 可以通过 CocoaPods 获取。
- 要安装它,请简单地添加以下行到您的 Podfile
pod 'com.aware.ios.sensor.activityrecognition'
- 在您的源代码中添加到 com_aware_ios_sensor_activityrecognition 库。
import com_aware_ios_sensor_activityrecognition
- 在 Info.plist 中添加对
NSMotionUsageDescription
的描述
公共函数
ActivityRecognitionSensor
init(config:ActivityRecognitionSensor.Config?)
: 使用可选配置初始化活动识别传感器。start()
: 使用可选配置启动活动识别传感器。stop()
: 停止服务。
ActivityRecognitionSensor.Config
包含传感器配置的类。
Fields
sensorObserver: ActivityRecognitionObserver
: 实时数据更新的回调。interval: Int
: 数据采样间隔(以分钟为单位)。(默认 = 10)enabled: Boolean
传感器是否启用。 (默认 =false
)debug: Boolean
启用/禁用日志记录到Logcat
。 (默认 =false
)label: String
数据的标签。 (默认 = "")deviceId: String
将与事件和传感器关联的设备ID。 (默认 = "")dbEncryptionKey: String
数据库加密密钥。 (默认 =null
)dbType: Engine
用于保存数据的数据库引擎。 (默认 =Engine.DatabaseType.NONE
)dbPath: String
数据库路径。 (默认 = "aware_activityrecognition")dbHost: String
数据库同步的主机。 (默认 =null
)
Broadcasts
Fired Broadcasts
ActivityRecognitionSensor.ACTION_AWARE_ACTIVITYRECOGNITION
:在周期结束时加速度计将数据保存到数据库后触发。
接收到的广播
ActivityRecognitionSensor.ACTION_AWARE_ACTIVITYRECOGNITION_START
:收到启动传感器的广播。ActivityRecognitionSensor.ACTION_AWARE_ACTIVITYRECOGNITION_STOP
:收到停止传感器的广播。ActivityRecognitionSensor.ACTION_AWARE_ACTIVITYRECOGNITION_SYNC
:收到发送到主机的同步尝试的广播。ActivityRecognitionSensor.ACTION_AWARE_ACTIVITYRECOGNITION_SET_LABEL
:收到设置数据标签的广播。标签期望存在于 intent 的 extras 字段中的ActivityRecognitionSensor.EXTRA_LABEL
中。
数据表示
活动识别数据
包含原始传感器数据。
字段 | 类型 | 描述 |
---|---|---|
activities | 字符串 | 检测到的活动的名称 |
confidence | 整数 | 运动数据准确的置信度。(0=低,1=中,2=高) |
stationary | 布尔型 | 表示设备是否静止的布尔值。 |
walking | 字符串 | 表示设备是否在行走的人身上的布尔值。 |
running | 字符串 | 表示设备是否在跑步的人身上的布尔值。 |
automotive | 字符串 | 表示设备是否在汽车上的布尔值。 |
cycling | 字符串 | 表示设备是否在自行车上的布尔值。 |
unknown | 字符串 | 表示运动类型是否为未知的布尔值。 |
label | 字符串 | 可自定义的标签。对数据校准或追踪很有用。 |
deviceId | 字符串 | AWARE 设备 UUID |
label | 字符串 | 可自定义的标签。对数据校准或追踪很有用。 |
timestamp | Int64 | 自1970年以来的 Unixtime 毫秒数 |
timezone | 整数 | 设备所在的时区 |
os | 字符串 | 设备的操作系统(例如 ios) |
示例用法
let activitySensor = ActivityRecognitionSensor.init(ActivityRecognitionSensor.Config().apply{config in
config.debug = true
config.interval = 15
config.dbType = .REALM
config.sensorObserver = Observer()
})
activitySensor.start()
class Observer:ActivityRecognitionObserver {
func onActivityChanged(data: Array<ActivityRecognitionData>) {
// Your code here ..
}
}
作者
Yuuki Nishiyama, [email protected]
相关链接
许可证
版权所有© 2021 AWARE移动上下文仪器中间件/框架(http://www.awareframework.com)
遵循Apache许可证2.0版(“许可证”);除非遵守许可证,否则不得使用此文件。可以在以下位置获得许可证副本:
https://apache.ac.cn/licenses/LICENSE-2.0除非适用于法律要求的或书面协议,否则根据许可证分发的软件按“原样”提供,不提供任何明示或暗示的保证或条件。有关许可证的权限和限制的具体内容,请参阅许可证。