gpt4 book ai didi

objective-c - 即使 Apple Watch 屏幕关闭也能访问锻炼数据

转载 作者:搜寻专家 更新时间:2023-10-30 20:08:44 24 4
gpt4 key购买 nike

我成功地在 Apple Watch OS 2 上没有锻炼 session 的情况下实时获取心率数据。但是当 Apple Watch 屏幕关闭时,我的完成 block 不再被调用。我想继续实时管理这些数据,并在心率过低时让我的手机响起。也许我可以让 iphone perma 上的应用程序永久打开,也许它可以在这次锻炼期间访问 healthkit 数据?你认为这行得通吗?还是您有其他想法?

问候

最佳答案

嘿,我找到了一个解决方案:

我将 iPhone 应用程序保持在前台:

[UIApplication sharedApplication].idleTimerDisabled = YES

通过与 apple watch (HKAnchoredObjectQuery) 相同的查询,我可以访问最新的健康工具包数据。即使我的 Apple Watch 关闭(进行锻炼),我也能很好地获取实时心率数据

  • 我的问题

HKQuantityType *type = [HKObjectType quantityTypeForIdentifier:HKQuantityTypeIdentifierHeartRate];

HKAnchoredObjectQuery *heartRateQuery = [[HKAnchoredObjectQuery alloc]
initWithType:type
predicate:nil
anchor:self.anchor
limit:HKObjectQueryNoLimit
resultsHandler:^(HKAnchoredObjectQuery * _Nonnull query, NSArray<__kindof HKSample *> * _Nullable sampleObjects, NSArray<HKDeletedObject *> * _Nullable deletedObjects, HKQueryAnchor * _Nullable newAnchor, NSError * _Nullable error) {
if (error) {

// Perform proper error handling here...
NSLog(@"*** An error occured while performing the anchored object query. %@ ***",
error.localizedDescription);

}

self.anchor = newAnchor;

HKQuantitySample *sample = (HKQuantitySample *)[sampleObjects firstObject];
if (sample) {
double value = [sample.quantity doubleValueForUnit:[HKUnit unitFromString:@"count/min"]];

dispatch_async(dispatch_get_main_queue(), ^(void){
self.heartrateLabel.text = [NSString stringWithFormat:@"%0.0f",value];
});
NSLog([NSString stringWithFormat:@"%0.0f",value]);
[self.hkStore stopQuery:heartRateQuery];


}
}];

[self.hkStore executeQuery:heartRateQuery];

关于objective-c - 即使 Apple Watch 屏幕关闭也能访问锻炼数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32300247/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com