pistol
@pistol

Как добавить в фон задачу в WatchOS 3.4 при неактивности приложения?

Стоит очень простая задача - раз в 10 секунд отправлять данные с акселерометра в бекенд. Все замечательно работает, пока приложение активно. Как только экран гаснет, апп фризится и данные слаться перестают.

Я нагуглил, что должен запустить воркаут сессию, чтобы приложение не фризилось. Однако, запуск этой сессии фактически дает ровным счетом ничего. Буду благодарен за любую помощь! Пятый день не могу пробить это ******

//...
override func willActivate() {
    super.willActivate()
    startWorkout()
    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) {

    }
}
  • Вопрос задан
  • 52 просмотра
Пригласить эксперта
Ответы на вопрос 1
doublench21
@doublench21 Куратор тега Swift
t.me/jeudesprits
Такого делать нельзя и никогда не будет возможным. Что бы какой-то чел, скажем Вы со своим приложением делали что-то с моими часами, когда приложение закрыто. Ну уж нет ) Apple об этом позаботились.
Вам даётся лишь определенное кол-во времени в фоне, не более.

https://developer.apple.com/library/archive/docume...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы