sensorkit 是做什么的?
使用 SensorKit 访问研究级传感器数据,适用于获批研究。当应用需要 SensorKit 授权设置、研究传感器与使用数据授权、环境光、录制的运动、设备使用、键盘指标、访问、语音、面部、手腕温度、心电图、PPG、声学设置或睡眠会话数据时使用。将普通运动路由至 CoreMotion,健康记录/健身数据路由至 HealthKit。
概述
SensorKit 是苹果提供的一个框架,允许经过批准的研究应用访问来自 iOS 设备的高保真传感器数据。本技能指导开发者如何设置 SensorKit 授权、配置 Info.plist,以及使用各种传感器数据类型。
设置步骤
- 启用 SensorKit 能力:在 Xcode 项目中,前往 Signing & Capabilities,添加 SensorKit 能力。
- 配置 Info.plist:添加以下键:
NSMotionUsageDescription:描述应用如何使用运动数据。NSSpeechRecognitionUsageDescription:如果使用语音数据。- 其他可能需要的权限字符串。
- 导入框架:在代码中导入
import SensorKit。
使用传感器数据
请求授权
import SensorKit
SRReader.requestAuthorization(for: [.ambientLight, .motion]) { granted, error in
if granted {
// 开始数据收集
}
}
枚举传感器
SRSensor 枚举支持以下传感器:
.ambientLight:环境光数据.motion:录制的运动数据.deviceUsage:设备使用数据.keyboardMetrics:键盘指标.visits:访问数据.speech:语音数据.face:面部数据.wristTemperature:手腕温度.electrocardiogram:心电图.photoplethysmogram:PPG.acousticSettings:声学设置.sleepSession:睡眠会话数据
使用 SRReader 读取数据
let reader = SRReader(sensor: .ambientLight)
reader.startRecording()
// 处理数据...
reader.stopRecording()
路由建议
- 普通运动:使用 CoreMotion 的
CMMotionManager处理,例如:import CoreMotion let motionManager = CMMotionManager() motionManager.startDeviceMotionUpdates(to: .main) { data, error in // 处理设备运动数据 } - 健康记录/健身:使用 HealthKit 的
HKHealthStore保存数据:import HealthKit let healthStore = HKHealthStore() // 请求授权并保存数据
注意事项
- 确保应用已获得苹果研究审查委员会的批准才能使用 SensorKit。
- 用户必须通过设置应用显式授予 SensorKit 权限。
- 所有数据收集必须在用户知情同意下进行。