AppleのSpeedySlothサンプルコードを使用して、シミュレータで心拍サンプルを取得していますが、WatchOS 4.1を実行しているSeries 0 Apple Watchでサンプルを取得していません。これはバグですか?この問題を抱えている人は誰ですか?WatchOS 4は心拍数サンプルを受信していませんか?
コード:
func startHeartRateQuery(from startDate: Date, updateHandler: @escaping ([HKQuantitySample]) -> Void) {
let typeIdentifier = HKQuantityTypeIdentifier.heartRate
startQuery(ofType: typeIdentifier, from: startDate) { _, samples, _, _, error in
guard let quantitySamples = samples as? [HKQuantitySample] else {
print("Heart rate query failed with error: \(String(describing: error))")
return
}
print("heartRate samples = \(quantitySamples)")
updateHandler(quantitySamples)
}
}
//Generic helper function
private func startQuery(ofType type: HKQuantityTypeIdentifier, from startDate: Date, handler: @escaping
(HKAnchoredObjectQuery, [HKSample]?, [HKDeletedObject]?, HKQueryAnchor?, Error?) -> Void) {
let datePredicate = HKQuery.predicateForSamples(withStart: startDate, end: nil, options: .strictStartDate)
let devicePredicate = HKQuery.predicateForObjects(from: [HKDevice.local()])
let queryPredicate = NSCompoundPredicate(andPredicateWithSubpredicates:[datePredicate, devicePredicate])
let quantityType = HKObjectType.quantityType(forIdentifier: type)!
let query = HKAnchoredObjectQuery(type: quantityType, predicate: queryPredicate, anchor: nil,
limit: HKObjectQueryNoLimit, resultsHandler: handler)
query.updateHandler = handler
healthStore.execute(query)
activeDataQueries.append(query)
}
あなたの質問は広すぎます。質問は、質問そのものの情報とコードに基づいて答える必要があります。 – tambre
ポイントは、私はシミュレータのデータを取得しているので、コードが正しいことを知っています。他の誰かが同じ問題を抱えているかどうかをもっと尋ねています。https://forums.developer.apple.com/message/272553#272553私のデバイス – GarySabo