簡體   English   中英

在HealthKit中請求授權:為什么結果總是成功?

[英]Requesting authorization in HealthKit: why the result is always successful?

我要求僅通過以下方式訪問某些健康信息:

let healthStore = HKHealthStore()
let types: Set<HKObjectType> = [distanceWalkingRunning]

healthStore.requestAuthorization(toShare: nil, read: types) { (success, error) in
        completion(success, error)
}

然后,在首次啟動該應用程序時,會向我顯示標准對話框,供您選擇是否要讓Health來訪問信息。 如果我點擊“不允許”,則會顯示一個警報視圖,其中顯示:

Health Access-您可以稍后在Health應用程序中打開健康數據類別。

他們將關閉警報和“運行狀況”訪問對話框,並顯示應用程序的登錄屏幕。 我可以看到, healthStore.requestAuthorization方法調用中提供的completion關閉healthStore.requestAuthorization都為success參數獲取了true值,為error參數獲取了nil

然后,我怎么知道該用戶不允許訪問“健康”?

success參數的文檔如下:

一個布爾值,指示是否成功處理了請求。 此值不指示是否實際授予了權限。 如果在處理請求時發生false則此參數為false否則為false 否則,這是true

在初始和后續請求兩者的請求被成功處理,你會得到truesuccess

您無法確定用戶是否已授予對您請求的數據的讀取訪問權限。 同樣,從文檔中

為了幫助防止敏感健康信息的可能泄漏,您的應用無法確定用戶是否已授予讀取數據的權限。 如果未獲得您的許可,則在HealthKit存儲中就好像沒有所請求類型的數據一樣。

提出授權請求后,您只需嘗試讀取數據,您將得到它,或者似乎沒有可用數據。

暫無
暫無

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

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