2015-07-29 24 views
13

yılında dokunsal geribildirim Ben zaten bu sorunun cevabını biliyorum ama kapsamlı olması sadece sormak istedim. watchos 2: Arka planda

Elma İzle yerleşik Maps uygulamasını ele alalım. Sola veya sağa dönüş zamanı geldiğinde, adım adım yol tarifleri kullandığınızda, saat ekran kapalı ve uygulama arka planda olsa bile saat özel bir dokunma stili oynatır. Başka bir örnek, bir egzersiz yaparken - bir hedef belirlediyseniz, saate bakmıyor olsanız bile,% 50 ve orada% 100 olduğunda bileğinizde hafif bir dokunuş elde edersiniz. zamanda (ekran kapalı, app arkaplan). watchos 2'de

, ekran kapalı iken bir uygulama belirli bir dokunsal desen oynamak için bizim için herhangi bir yolu 3. parti geliştiriciler vardır ve Uygulama arka plana? Uygulamanın dokunsal desen, birkaç farklı türde çalması için etkinken ben playHaptic: yöntem işleri biliyorum ve uygulama etkin durumdayken, bir bildirim gelir olabileceğini biliyorum - ama bildirim sadece hiç 'bildirimi oynardım Dokunuş hissi, bu konuda seçim yok.

+0

Bu Apple tarafından henüz ele alındı ​​mı? Uygulamam @ ChronicTimer bundan büyük ölçüde fayda sağlayacaktır. Bir egzersiz seansım var ama yine de bu işlevselliği sağlayamıyorum. –

+0

Hayır, ve önümüzdeki yıl MAYBE WWDC 2016'ya kadar bir şey değişeceğinden şüphe duyuyorum. Apple, en yeni ana işletim sistemi sürümü hala beta (genellikle Haziran ve Eylül arasında) dışında yeni API'ler sunma alışkanlığı içinde değil. – UberJason

cevap

2

Kullanıcılara uygulamanın etkin olduğunda yalnızca özel kod çalıştırabilir. Yani korkarım bunu yapamazsın. Egzersiz İşleme ve Ses, Airplay: i WatchExtensionand etkinleştirmek için Kabiliyetlerine arka plan mod etkinleştirmeniz gerekir her şeyden önce arka planda haptiğini, oynuyorum nasıl İşte

+0

Ben de öyle düşündüm, teşekkürler. Bu HealthKit şeyleri ilginç olsa da, bunu bilmiyordum ... dahili bir şirket uygulaması (App Store yok) düşünüyoruz, bu yüzden muhtemelen bir egzersiz uygulaması gibi davranabilir ve kalp atış hızı verilerini atabiliriz. Kalp atış hızı verilerinin ne sıklıkta geldiğini biliyor musunuz? Periyodik geri aramalar ve kod çalıştırma şansı bulabileceğiniz başka herhangi bir çerçeve var mı? – UberJason

+0

HeartRate örneklerini yaklaşık alacaksınız. her 3-5 saniyede. Atm'ın farkında olduğum başka hiçbir çerçeve yok .. – Philip

+0

HKWorkoutSessionDelegate egzersizine bakıyor musunuzSession: didChangeToState: fromState :?Dokümantasyonda "Uygulamanız askıya alındıysa, uygulama devam edildikten sonra temsilci bu çağrıyı alır. Bu, durumun değişmesinden çok sonra bildirimi alabileceğiniz anlamına gelir. Durum değişikliğinin gerçekte ne zaman gerçekleştiğini belirlemek için tarih parametresini kontrol edin." https://developer.apple.com/library/prerelease/watchos/documentation/HealthKit/Reference/HKWorkoutSessionDelegate_ProtocolReference/index.html#//apple_ref/occ/intfm/HKWorkoutSessionDelegate/workoutSession:didChangeToState:fromState:date: – UberJason

1

olduğunu. Ayrıca WatchExtension HealthKit için etkinleştirmeniz gerekir. < HealthKit/HealthKit.h>

alma

-(void)awakeWithContext:(id)context{ 

[super awakeWithContext:context]; 
HKHealthStore *cwHealthStore = [[HKHealthStore alloc] init]; 
cwConfiguration = [[HKWorkoutConfiguration alloc] init]; 
cwConfiguration.activityType = HKWorkoutActivityTypeOther; 
NSError *error; 
HKWorkoutSession *cwSession = [[HKWorkoutSession alloc] initWithConfiguration:cwConfiguration error:&error]; 
[cwSession setDelegate:self]; 
if (!error) { 
    [cwHealthStore startWorkoutSession:cwSession]; 
} 
    [self test]; 
} 


#pragma mark WorkoutSession Delegates 

- (void)workoutSession:(HKWorkoutSession *)workoutSession 
    didChangeToState:(HKWorkoutSessionState)toState 
     fromState:(HKWorkoutSessionState)fromState 
       date:(NSDate *)date{ 
NSLog(@"------>%ld", (long)toState); 
} 

- (void)workoutSession:(HKWorkoutSession *)workoutSession didFailWithError:(NSError *)error{ 
NSLog(@"%@", error); 
} 

HKWorkoutSessionDelegate

eklemek Ve şimdi arka planda haptiğini oynayabilir. , Watchos 3 antrenman uygulamalarında arka plan yürütme verildi -

 [cwHealthStore endWorkoutSession:cwSession]; 
0

Sadece birkaç yıl sonra kendi soruya bir güncelleme sonrası:

-(void)test{ 
    NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerTrick:) userInfo:nil repeats:true]; 


} 

- (void)timerTrick:(NSTimer *)time { 

     [[WKInterfaceDevice currentDevice] playHaptic:WKHapticTypeStart]; 

} 

ayrıldıktan denetleyicisi sonra egzersiz Oturumunu durdurmak için forghet etmeyin ama haptikler yok (bence).

watchos 4'te

, egzersiz uygulamaları, ses kayıt uygulamaları ve navigasyon uygulamaları arka planda yürütme var; navigasyon uygulamaları arka planda haptikleri gönderebilir. Dahası, "en eski uygulama" (en son kullanılan uygulama, bilek 2 dakika içinde kaldırılırsa görüntülenir veya 8 saat sonra uzatılmışsa görünür), bir WatchConnectivity veya NSURLSession veri aktarımının tamamlanmasında haptikleri göndermek için bazı ayrıcalıklara sahiptir. Bir bildirim gelir. Ayrıntılar için dokümanlar bölümüne bakın.

İlgili konular