在 iOS 和 watchOS 上,CMMotionActivityManager 处理设备中传感器的原始数据并告诉你(有多确定)用户是否正在移动,和用户是在行走、跑步、骑行或者开车。
要使用这个 API,首先创建一个活动管理器,然后使用 startActivityUpdates 方法来开始监听活动更新。每当设备更新了运动相关活动,它就会执行指定的闭包,并传入一个 CMMotionActivity 对象。
let manager = CMMotionActivityManager()
manager.startActivityUpdates(to: .main) { (activity) in
guard let activity = activity else {
return
}
var modes: Set<String> = []
if activity.walking {
modes.insert("🚶")
}
if activity.running {
modes.insert("🏃")
}
if activity.cycling {
modes.insert("🚴")
}
if activity.automotive {
modes.insert("🚗")
}
print(modes.joined(separator: ", "))
}
CMMotionActivityManager 由 Core Motion 框架提供。支持 Core Motion 的设备都装备了一个运动协处理器。通过使用专用硬件,系统可以将所有传感器处理工作从 CPU 上卸载掉,并减少电量的使用。
网友评论