有没有办法从 Healthkit 获得多个数据点的集体许可

Is there a way to get collective permission for multiple Data points from Healthkit

我正在创建一个应用程序,它需要从 HealthKit 中获取 heartRate、restingHeartRate、walkingHeartRateAverage、HeartRateVariabilitySDNN 数据。

我还想获取用户的 body 测量数据。即body质量指数,body体温,身高,腰围,体重

要获得读取权限,我需要为每种数据类型获得单独的权限:

let healthKitTypesToRead: Set<HKObjectType> = [
    HKObjectType.quantityType(forIdentifier: .heartRate)!,
    HKObjectType.quantityType(forIdentifier: .heartRateVariabilitySDNN)!,
    HKObjectType.quantityType(forIdentifier: .restingHeartRate)!,
    HKObjectType.characteristicType(forIdentifier: .walkingHeartRateAverage)!,
    HKObjectType.quantityType(forIdentifier: .bodyMass)!,
    HKObjectType.quantityType(forIdentifier: .bodyMassIndex)!,
    HKObjectType.quantityType(forIdentifier: .bodyTemperature)!,
    HKObjectType.quantityType(forIdentifier: .height)!,
    HKObjectType.quantityType(forIdentifier: .waistCircumference)!,
    HKObjectType.quantityType(forIdentifier: .weight)!,
] 

它在权限屏幕上显示了多个开关,我觉得这对用户来说太过分了,不能给每个开关单独的权限。 (以防他们不想授予所有权限。)

有没有办法对权限进行分组,或者是否有一些数据类型,如果获得许可,我们也可以收集其他数据类型。

最初我认为获得 heartRate 权限意味着我可以获取 restingHeartRate、walkingHeartRateAverage 等。但它们都需要各自的权限。

每种 HealthKit 类型必须独立授权:

To help protect the user’s privacy, HealthKit requires fine-grained authorization. You must request permission to both read and share each data type used by your app before you attempt to access or save the data.

https://developer.apple.com/documentation/healthkit/authorizing_access_to_health_data

Apple 预见到一次请求多种 HealthKit 类型的困难,并建议在您的应用程序中的不同时间请求不同权限类型的许可,而不是一次请求所有类型:

However, you don’t need to request permission for all data types at once. Instead, it may make more sense to wait until you need to access the data before asking for permission.

HealthHit 权限对话框也有一个按钮,允许用户启用所有请求的类型:

Turn All Categories On