Я сделал свое первое приложение для Apple Watch и столкнулся с невозможностью отправлять данные каждые 10 секунд на мой сервер.
Приложение зависает, когда дисплей выключается, и снова запускается с нуля, когда дисплей включен.
Я попытался запустить сеанс тренировки, как в в этом примере .
Но это не помогает, приложение зависает после 10 секунд бездействия.
Я пытаюсь отправлять данные акселерометра на свой сервер каждые 10 секунд в InterfaceController.swift:
//...
override func willActivate() {
super.willActivate()
startWorkout() //it's copied from example
startAnglesTracker()
}
func startAnglesTracker() {
if motion.isAccelerometerAvailable && !motion.isAccelerometerActive {
motion.accelerometerUpdateInterval = 10
motion.startAccelerometerUpdates(to: OperationQueue.main) {
//sending here
}
}
}
private func startWorkout() {
let workoutConfiguration = HKWorkoutConfiguration()
workoutConfiguration.activityType = .crossTraining
workoutConfiguration.locationType = .indoor
do {
workoutSession = try HKWorkoutSession(configuration: workoutConfiguration)
workoutSession?.delegate = self
healthStore.start(workoutSession!)
vibrate()
} catch {
serverData.setText("workoutSession error")
}
}
//...
extension InterfaceController: HKWorkoutSessionDelegate {
func workoutSession(_ workoutSession: HKWorkoutSession, didFailWithError error: Error) {
}
func workoutSession(_ workoutSession: HKWorkoutSession, didGenerate event: HKWorkoutEvent) {
}
func workoutSession(_ workoutSession: HKWorkoutSession, didChangeTo toState: HKWorkoutSessionState, from fromState: HKWorkoutSessionState, date: Date) {
}
}
Он работает только при активном отображении.