2015-07-14 15 views
5

Elma izle uygulaması üzerinde çalışıyorum ve kalp hızı veri örneğine erişmek için HKworkoutsession kullanıyorum.HKworkoutsession her zaman aktif bir antrenman oturumu nasıl yapılır

En yeni watchos2 beta3 sürüm hatalarında "Etkin bir egzersiz oturumu sırasında, ekran kapalıyken yeni kalp atış hızı örnekleri oluşturulmuyor." sabittir.

Soruma göre, HKworkoutsessionımı her zaman "etkin bir çalışma oturumu" olarak nasıl ayarlayabilirim, böylece istediğim gibi kalp atış hızı örneğini alabilirim. Aşağıdaki

Teşekkür Ryan

+0

Daha spesifik olmak gerekirse, saatimi eğdiğimde, ekran kapanacak, program askıya alınacak. Geri eğildiğinde, ekran açılır, bu zaman noktasında HKworkout oturumu ilk önce ".Ended" olarak değişir ve sonra ".Running" olarak değişir. Bunu nasıl engellemek ve her zaman oturumu sürdürmek ".Running" – user3781258

+0

Apple'a bildirmeniz gereken bir HealthKit hatası gibi görünüyor. – Allan

+0

@ user3781258 Bu konuyla ilgili herhangi bir gelişme var mı? – Philip

cevap

4

Kod başlatmak veya egzersiz oturumunu durdurmak nasıl.

let healthStore = HKHealthStore() 
healthStore.startWorkoutSession(workoutSession) { 
    (result: Bool, error: NSError?) -> Void in 
} 

healthStore.stopWorkoutSession(workoutSession) { 
    (result: Bool, error: NSError?) -> Void in 
} 

Oturum durumunu bildiren HKWorkoutSessionDelegate vardır.

protocol HKWorkoutSessionDelegate : NSObjectProtocol { 

func workoutSession(workoutSession: HKWorkoutSession, 
    didChangeToState toState: HKWorkoutSessionState, 
    fromState: HKWorkoutSessionState, date: NSDate) 

func workoutSession(workoutSession: HKWorkoutSession, 
    didFailWithError error: NSError) 
} 

[Düzenlendi] 2015/08/31

objc versiyonu

HKWorkoutSession *workoutSession = [[HKWorkoutSession alloc] initWithActivityType:HKWorkoutActivityTypeRunning locationType:HKWorkoutSessionLocationTypeOutdoor]; 
workoutSession.delegate = self; 

HKHealthStore *healthStore = [HKHealthStore new]; 
[healthStore startWorkoutSession:workoutSession]; 

[healthStore stopWorkoutSession:workoutSession]; 

HKWrokoutSessionDelegate

- (void)workoutSession:(HKWorkoutSession *)workoutSession 
    didChangeToState:(HKWorkoutSessionState)toState 
     fromState:(HKWorkoutSessionState)fromState 
       date:(NSDate *)date; 

- (void)workoutSession:(HKWorkoutSession *)workoutSession didFailWithError:(NSError *)error; 

Dikkat: son sürümü ile yöntem adının bir değişiklik yoktur, OS 2 beta 5'i izleyin.

stopWorkoutSession endWorkoutSession olarak değiştirildi.

+0

'un bir kopyası olabilir. Örneğinizi Objective C'ye çevirebilir misiniz? –

+2

Objective-C kodları ile düzenledim. Lütfen bir bak! –

+0

Buna benzer bir kodum var ve hala soruda açıklanan davranışı görüyorum. – yairsz

İlgili konular