Гироскоп и акселерометр в Apple Watch

Мне нравится, когда данные гироскопа и акселерометра Apple Watch передаются в сопряженное приложение для iPhone (с максимально возможной частотой обновления). Нет ли шва для доступа к данным?


person HixField    schedule 04.04.2015    source источник


Ответы (2)


Неа. В настоящее время WatchKit SDK не имеет доступа к оборудованию.

person bgilham    schedule 04.04.2015
comment
Ну это позор. Но в спецификациях аппаратного обеспечения сказано, что он содержит гироскоп и акселерометр, я полагаю... Странно, что API не существует... Тем не менее? - person HixField; 04.04.2015
comment
@HixField Предполагается, что эта функция появится в следующей версии WatchKit; прямо сейчас они пытаются упростить вещи, чтобы сократить время автономной работы. - person AstroCB; 05.04.2015
comment
@AstroCB Надеюсь :-) не имеет особого смысла включать поддержку hw без поддержки sw ... - person HixField; 05.04.2015
comment
Изменилось ли оно с момента появления watchos 2? - person user784625; 13.06.2015
comment
@ user784625, см. ответ ниже - person casillas; 24.06.2015

Информация о данных датчиков теперь доступна в Watchkit for watchOS 2.0.

Вы можете проверить эту информацию в следующем сеансе, который составляет всего 30 минут презентации. Если вы не хотите смотреть весь сеанс, вы сразу переходите к функциям CoreMotion и HealthKit, которые находятся между 22-28 минутами:

Сессия WatchKit для watchOS 2.0 на WWDC 2015

Вот реализация в расширении WatchKit, вот ссылка.

import WatchKit
import Foundation
import CoreMotion

class InterfaceController: WKInterfaceController {


    @IBOutlet weak var labelX: WKInterfaceLabel!
    @IBOutlet weak var labelY: WKInterfaceLabel!
    @IBOutlet weak var labelZ: WKInterfaceLabel!
    let motionManager = CMMotionManager()


    override func awakeWithContext(context: AnyObject?) {
        super.awakeWithContext(context)

        motionManager.accelerometerUpdateInterval = 0.1
    }

    override func willActivate() {
        super.willActivate()

        if (motionManager.accelerometerAvailable == true) {
            let handler:CMAccelerometerHandler = {(data: CMAccelerometerData?, error: NSError?) -> Void in
                self.labelX.setText(String(format: "%.2f", data!.acceleration.x))
                self.labelY.setText(String(format: "%.2f", data!.acceleration.y))
                self.labelZ.setText(String(format: "%.2f", data!.acceleration.z))
            }
            motionManager.startAccelerometerUpdatesToQueue(NSOperationQueue.currentQueue()!, withHandler: handler)
        }
        else {
            self.labelX.setText("not available")
            self.labelY.setText("not available")
            self.labelZ.setText("not available")
        }
    }

    override func didDeactivate() {
        super.didDeactivate()

        motionManager.stopAccelerometerUpdates()
    }
}
person casillas    schedule 22.06.2015
comment
Спасибо, что процитировали мой код: github. com/shu223/watchOS-2-Sampler/blob/master/ Я был бы рад, если бы вы представили эту ссылку в качестве ссылки. - person shu223; 13.08.2015
comment
как вы можете видеть в коде shu233, гироскоп по-прежнему не работает. - person joon; 25.11.2015