iOS

iOS - Core Motion

2022-04-06  本文已影响0人  ienos

运动传感器

//        设备是否支持计步功能       CMPedometer.isStepCountingAvailable()
//        设备是否支持距离          CMPedometer.isDistanceAvailable()
//        设备是否支持速度          CMPedometer.isPaceAvailable()
//        设备是否支持节奏          CMPedometer.isCadenceAvailable()
//        设备是否支持计步事件       CMPedometer.isPedometerEventTrackingAvailable()
//        当前授权状态             CMPedometer.authorizationStatus().rawValue)

        var pedometer = CMPedometer.init()

/// 开始事件更新
        self.pedometer.startEventUpdates(handler: { pedometerData, error in
//        计步器开始时间         pedometerData?.startDate
//        计步器结束时间         pedometerData?.endDate
//        用户步数              pedometerData?.numberOfSteps
//        用户行走和跑步的距离    pedometerData?.distance
//        用户上楼的层数         pedometerData?.floorsAscended
//        用户下楼的层数         pedometerData?.floorsDescended
//        当前速度              pedometerData?.currentPace
//        当前节奏              pedometerData?.currentCadence
//        当前活动平均速度        pedometerData?.averageActivePace
        })

/// 停止事件更新
// 停止更新后如果重新开始 pedometerData 会重置,如果需要查历史数据需要通过 queryPedometerData 去查询
      self.pedometer.stopUpdates()

/// 通过时间段获取历史数据
      self.pedometer.queryPedometerData(from: start, to: end) { pedometerData, error in }

授权状态

/// 获取运动与健康授权状态
CMPedometer.authorizationStatus()

/// iOS 11.0 以下获取不到对应的运动传感器授权权限
@available(iOS 11.0, *)
public enum CMAuthorizationStatus : Int {
    case notDetermined = 0
    case restricted = 1
    case denied = 2
    case authorized = 3
}

iPad

iPad 获取不到实时运动传感器数据,startEventUpdates 回调不返回数据。系统没有 "健康(Health)" 应用,但是对应应用下的设置页面可以看到 “运动与健康” 权限

上一篇 下一篇

猜你喜欢

热点阅读