Какие функции CMPedometer для конкретного устройства поддерживаются в отдельных моделях iPhone и Apple Watch? - PullRequest
0 голосов
/ 21 ноября 2018

Мне интересно узнать, какие функции Core Motion - Шагомер (CMPedometer) поддерживаются в каких моделях iPhone.

В частности, меня интересуют значения bool следующих свойств:

isCadenceAvailable()
isStepCountingAvailable()
isPaceAvailable()
isDistanceAvailable()
isPedometerEventTrackingAvailable()
isFloorCountingAvailable()

У меня есть доступ к iPhone SE и 5 с.На этих моделях я получил следующий ответ:

isCadenceAvailable: false
isStepCountingAvailable: true
isPaceAvailable: false
isDistanceAvailable: true
isPedometerEventTrackingAvailable: false
isFloorCountingAvailable: false

SE

isCadenceAvailable: true
isStepCountingAvailable: true
isPaceAvailable: true
isDistanceAvailable: true
isPedometerEventTrackingAvailable: true
isFloorCountingAvailable: false

Я быМне нравится, если другие участники могут представить информацию о других моделях iPhone: 6, 6, 7, 8, X, XR, XS, XS Макс.Я полагаю, что XR, XS и XS Max дадут те же результаты, что и 8 и X.


Также аналогичные результаты для моделей Apple Watch также приветствуются.Вот данные для

S0

isCadenceAvailable: true
isStepCountingAvailable: true
isPaceAvailable: true
isDistanceAvailable: true
isPedometerEventTrackingAvailable: true
isFloorCountingAvailable: false

Вот код для распечатки этого:

iOS

import UIKit
import CoreMotion

class ViewController: UIViewController {

    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)

        print("isCadenceAvailable: \(CMPedometer.isCadenceAvailable())")
        print("isStepCountingAvailable: \(CMPedometer.isStepCountingAvailable())")
        print("isPaceAvailable: \(CMPedometer.isPaceAvailable())")
        print("isDistanceAvailable: \(CMPedometer.isDistanceAvailable())")
        print("isPedometerEventTrackingAvailable: \(CMPedometer.isPedometerEventTrackingAvailable())")
        print("isFloorCountingAvailable: \(CMPedometer.isFloorCountingAvailable())")
    }
}

watchOS

import WatchKit
import Foundation
import CoreMotion

class InterfaceController: WKInterfaceController {
    @IBOutlet var boolLabel: WKInterfaceLabel!

    override func willActivate() {
        super.willActivate()
        let b1 = CMPedometer.isDistanceAvailable() ? "Y" : "N"
        let b2 = CMPedometer.isStepCountingAvailable() ? "Y" : "N"
        let b3 = CMPedometer.isCadenceAvailable() ? "Y" : "N"
        let b4 = CMPedometer.isPaceAvailable() ? "Y" : "N"
        let b5 = CMPedometer.isPedometerEventTrackingAvailable() ? "Y" : "N"
        let b6 = CMPedometer.isFloorCountingAvailable() ? "Y" : "N"
        let str = b1 + b2 + b3 + b4 + b5 + b6

        boolLabel.setText(str)
    }
}

Этот вопрос касается информации для других моделей iPhone и часов.К сожалению, проверка этого с помощью симулятора генерирует false для всех логических значений.Не стесняйтесь скопировать и вставить указанный выше код и запустить на своем устройстве, чтобы предоставить ответы.

...