簡體   English   中英

.NET MAUI 訪問 Apple Healthkit

[英].NET MAUI Accessing Apple Healthkit

我想訪問 iOS Healthkit,最終也是 Android,但找不到成功的方法。 在網上我看到了指向https://learn.microsoft.com/en-us/xamarin/ios/platform/healthkit的建議,它適用於 xamarin 而不是 MAUI,但是找不到示例中的方法。 這是代碼:

private HKHealthStore healthKitStore = new HKHealthStore ();

public override void OnActivated (UIApplication application)
{
    ValidateAuthorization ();
}

private void ValidateAuthorization ()
{
    var heartRateId = HKQuantityTypeIdentifierKey.HeartRate;
    var heartRateType = HKObjectType.GetQuantityType (heartRateId);
    var typesToWrite = new NSSet (new [] { heartRateType });
    var typesToRead = new NSSet ();
    healthKitStore.RequestAuthorizationToShare (
            typesToWrite, 
            typesToRead, 
            ReactToHealthCarePermissions);
}

void ReactToHealthCarePermissions (bool success, NSError error)
{
    var access = healthKitStore.GetAuthorizationStatus (HKObjectType.GetQuantityType (HKQuantityTypeIdentifierKey.HeartRate));
    if (access.HasFlag (HKAuthorizationStatus.SharingAuthorized)) {
            HeartRateModel.Instance.Enabled = true;
    } else {
            HeartRateModel.Instance.Enabled = false;
    }
}

很遺憾,

HKQuantityTypeIdentifierKey.HeartRate;
HKObjectType.GetQuantityType (heartRateId);

好像不見了。 有沒有人有 MAUI 的工作示例?

您參考的文檔中的這兩種方法已過時,您可以按如下方式修改您的方法:

HKQuantityTypeIdentifierKey.HeartRate; ---> HKQuantityTypeIdentifier.HeartRate;

HKObjectType.GetQuantityType (heartRateId); ---> HKQuantityType.Create(heartRateId);

更多詳情,您可以參考:

HealthKit 命名空間 | 微軟

HKQuantityTypeIdentifierKey 類 | 微軟

HKObjectType.GetQuantityType(NSString) 方法 | 微軟

我在 my.Net Maui 應用程序中使用了這段代碼,因為你同時要求 iOS 和 Android。 您可以看到針對心率的授權請求,但代碼實際上並未查詢或觀察心臟數據。 無論如何,這段代碼是一個很好的入門指南。 該代碼還實現了跨 iOS 和 Android 的完成處理程序。

https://github.com/jlmatus/Xamarin-Forms-HealthKit-steps/blob/master/StepsCounter-Test-Project/iOS/HealthData.cs

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM