Tag: 健康工具包

如何阅读healthKit心率数据?

我知道这个问题已经被问到,但还没有真正的答案。 我已经尝试了这样的线程: 心率与苹果公司的Healthkit 我试图从Objective-C转换到Swift,但没有工作。 我的问题是,什么是阅读健康包的心率数据的最佳方式。 我希望能够读取每次心率测量的时间,我希望能够看到所述测量的时间/date戳。 我在这里要求许可: import Foundation import UIKit import HealthKit class HealthKitManager: NSObject { static let healthKitStore = HKHealthStore() static func authorizeHealthKit() { let healthKitTypes: Set = [ HKObjectType.quantityTypeForIdentifier(HKQuantityTypeIdentifierHeartRate)!, ] healthKitStore.requestAuthorizationToShareTypes(healthKitTypes, readTypes: healthKitTypes) { _, _ in } } } 这里是我现在的视图控制器代码(我不知道为什么这不起作用): import UIKit import HealthKit class ViewController: UIViewController { let health: HKHealthStore […]

健康包HKAnchoredObjectQuery在iOS 9不返回HKDeletedObject

我很高兴知道苹果在iOS 9中增加了对HealthKit的删除跟踪。所以我build立了一个testing项目来试用。 不幸的是,虽然我可以得到新的数据,但我没有得到任何删除对象在我的callback。 我有一个能够跟踪HKQueryAnchor的HKAnchoredObjectQuery函数,当我通过Health应用程序向HealthKit添加BloodGlucose数量时,会为我提供新的HKSamples。 但是,当我删除相同的数量,并重新运行应用HKDeletedObject始终是空的。 即使我同时做一个添加和删除。 看来不pipe我做什么,HKDeletedObject数组总是空的。 但是,添加工作正常(只从上次锚点获取添加的样本)。 这是我的代码。 这只是2个文件。 要重新创build项目,只需创build一个新的swift项目,给自己一个HealthKit权利,然后复制这些项目。(注意:运行它时,每次运行只会得到一个更新,所以如果在HealthKit中进行更改,则必须停止重新启动应用程序来testingcallback。) 这是我的HealthKit客户端: // // HKClient.swift // HKTest import UIKit import HealthKit class HKClient : NSObject { var isSharingEnabled: Bool = false let healthKitStore:HKHealthStore? = HKHealthStore() let glucoseType : HKObjectType = HKObjectType.quantityTypeForIdentifier(HKQuantityTypeIdentifierBloodGlucose)! override init(){ super.init() } func requestGlucosePermissions(authorizationCompleted: (success: Bool, error: NSError?)->Void) { let dataTypesToRead : […]

是否需要在View Controller中停止HKQuery

我想知道如果长时间运行的HKQuery(不包括HKObserverQuery)需要调用HealthStore.stop HealthStore.stop() ,或者系统自动清理它。 如果你确实需要手动停止它们,是否deinit了vc最好的地方呢?

HKObserverQuery后台传递的逻辑是什么?

我需要我的应用程序在HealthKit和我们的数据库之间进行同步。 我只是无法将自己的头围绕在确定HKObserverQueries如何以及何时运行updateHandlers的逻辑上。 我需要各种不同的样本types的数据,所以我假设我需要每个人的观察员查询。 对? 根据苹果关于functionenableBackgroundDeliveryForType,“ HealthKit唤醒您的应用程序,每当指定types的新样本保存到商店” 。 但是,如果我启用后台交付和执行观察者查询血糖和体重,他们都似乎运行更新处理程序,只要我在健康应用程序中的任何一个input数据。 即使在仅为其中一种样本types启用后台交付时,这也会发生。 为什么? func startObserving(completion: ((success: Bool) -> Void)!) { let sampleTypeBloodGlucose = HKObjectType.quantityTypeForIdentifier(HKQuantityTypeIdentifierBloodGlucose)! let sampleTypeWeight = HKObjectType.quantityTypeForIdentifier(HKQuantityTypeIdentifierBodyMass)! // Enable background delivery for blood glucose self.healthKitStore.enableBackgroundDeliveryForType(sampleTypeBloodGlucose, frequency: .Immediate) { (success, error) in if error != nil { abort() } } // Enable background delivery for weight self.healthKitStore.enableBackgroundDeliveryForType(sampleTypeWeight, frequency: […]

如何使用Apple HealthKit获得每日睡眠时间?

我正在做一个应用程序,每天读取步骤,并从苹果HealthKit睡眠数据。 对于步骤来说 ,这很容易,因为它是HKQuantityType ,所以我可以在其上应用HKStatisticsOptionCumulativeSum选项。 将开始date,结束date和date时间间隔放在中,然后就可以了。 – (void)readDailyStepsSince:(NSDate *)date completion:(void (^)(NSArray *results, NSError *error))completion { NSDate *today = [NSDate date]; NSCalendar *calendar = [NSCalendar currentCalendar]; NSDateComponents *comps = [calendar components:NSCalendarUnitDay|NSCalendarUnitMonth|NSCalendarUnitYear fromDate:date]; comps.hour = 0; comps.minute = 0; comps.second = 0; NSDate *midnightOfStartDate = [calendar dateFromComponents:comps]; NSDate *anchorDate = midnightOfStartDate; HKQuantityType *stepType = [HKQuantityType quantityTypeForIdentifier:HKQuantityTypeIdentifierStepCount]; HKStatisticsOptions sumOptions […]

从HealthKit获取昨天的步骤

我正在构build一个个人使用的应用程序,而且我目前正在坚持如何准确地从healthkit得到昨天的步骤。 然后从那里,把它放到一个variables(应该很容易,我知道)。 我有一个HealthKitManager类,从视图内调用该函数,然后将其附加到来自同一视图的variables。 我已经search了大部分健康问题的资料,并且找回数据,但是我不认为这是准确的数据。 我昨天的电话数据是1442步,但是它返回了2665步。 最重要的是,当我试图把数据是一个variables,打印出0。 HealthKitManagerClass import Foundation import HealthKit class HealthKitManager { let storage = HKHealthStore() init() { checkAuthorization() } func checkAuthorization() -> Bool { // Default to assuming that we're authorized var isEnabled = true // Do we have access to HealthKit on this device? if HKHealthStore.isHealthDataAvailable() { // We have to […]

Health与HealthKit-swift处理多个步骤源

我的Swift iOS应用程序与HealthKit连接,向用户显示当天到目前为止所采取的步骤。 大多数情况下,这是成功的。 当步骤的唯一来源是iPhone的内置计步器functionlogging的步骤时,一切工作正常,我的应用程序显示的步数与健康应用程序的步数相匹配。 但是,当我的个人iPhone上有多个数据源时,我的Pebble Time智能手表和iPhone的计步器都会向Health提供步骤 – 我的应用程序吓坏了,logging了两者的所有步骤。 鉴于iOS健康应用程序根源重复的步骤(它可以做,因为我的iPhone和我的卵石报告每隔60秒步骤健康),并显示一个准确的每日步数,我的应用程序从HealthKit获得的数据包括所有从这两个步骤来源,造成很大的不准确。 我怎样才能进入健康应用程序的最终结果,其步数是准确的,而不是进入HealthKit的过度膨胀的步骤数据stream? 更新 :这是我用来获取每日健康数据的代码: func recentSteps2(completion: (Double, NSError?) -> () ) { checkAuthorization() // checkAuthorization just makes sure user is allowing us to access their health data. let type = HKSampleType.quantityTypeForIdentifier(HKQuantityTypeIdentifierStepCount) // The type of data we are requesting let date = NSDate() let cal = NSCalendar(calendarIdentifier: […]

以编程方式打开Apple健康

是否有可能以编程方式打开健康应用程序,就像可以使用设置应用程序? 如果无法直接打开应用程序的Apple Health权限屏幕,我们是否至less可以打开主要的Apple Health屏幕? 编辑 :我知道我不能再请求权限 – 就像其他的东西,如相机访问等,但是,如果用户拒绝相机的权限,我可以直接指向他们可以改变这些权限的设置页面。 NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString]; [[UIApplication sharedApplication] openURL:url]; 健康应用程序有这样的事情吗?

我无法使HealthKit工作。 缺less权利

我很难让HealthKit为我的iOS应用程序工作。 我已经完成了迄今为止我所发现的所有步骤,但似乎没有解决我的问题。尝试授权Healthkit时,我一直收到此错误: Error Domain=com.apple.healthkit Code=4 "Missing com.apple.developer.healthkit entitlement." UserInfo=0x78fa24e0 {NSLocalizedDescription=Missing com.apple.developer.healthkit entitlement.} 这是我的代码要求授权: if([HKHealthStore isHealthDataAvailable]) { self.healthStore = [[HKHealthStore alloc] init]; [self.healthStore requestAuthorizationToShareTypes:nil readTypes:[self dataTypesToRead] completion:^(BOOL success, NSError *error) { if (!success) { NSLog(@"HK Error: %@", error); [self presentHealthAlert:@"You didn't allow APP to access HealthKit Data. Please go to Settings and set up APP permissions." […]

如何检查HealthKit是否已被授权

我想检查HeathKit是否已经被授权阅读用户的数据,如果我被授权继续锻炼,如果没有popup警报。 但requestAuthorizationToShareTypes似乎总是返回true? 我如何获得用户是否授权我的参考? override func viewDidLoad() { super.viewDidLoad() //1. Set the types you want to read from HK Store let healthKitTypesToRead: [AnyObject?] = [ HKObjectType.workoutType() ] //2. If the store is not available (for instance, iPad) return an error and don't go on. if !HKHealthStore.isHealthDataAvailable() { let error = NSError(domain: "com.myndarc.myrunz", code: 2, userInfo: [NSLocalizedDescriptionKey: […]