HealthKit之实战读取本人消息

- (void)requestHealthAuthorization

{

    if (![HKHealthStore isHealthDataAvailable])

    {

        NSLog(@"设备不支持healthKit"); return;

    }

    _healthStore = [[HKHealthStore alloc] init];

    HKObjectType *type1 = [HKObjectType characteristicTypeForIdentifier:HKCharacteristicTypeIdentifierBiologicalSex]; // 性别

    HKObjectType *type2 = [HKObjectType characteristicTypeForIdentifier:HKCharacteristicTypeIdentifierBloodType];//血型

    HKObjectType *type3 = [HKObjectType characteristicTypeForIdentifier:HKCharacteristicTypeIdentifierDateOfBirth];//出生日期

    HKObjectType *type4 = [HKObjectType characteristicTypeForIdentifier:HKCharacteristicTypeIdentifierFitzpatrickSkinType];//日光反应型皮肤类型

    

    NSSet *set = [NSSet setWithObjects:type1, type2, type3, type4, nil]; // 读集合

   

    __weak typeof (&*self) weakSelf = self;

    [_healthStore requestAuthorizationToShareTypes:nil readTypes:set completion:^(BOOL success, NSError * _Nullable error) {

        if (success)

        {

            [weakSelf readHealthPersonInfo];

        } else

        {

            NSLog(@"healthkit不允许读写");

        }

    }];

}


//查询数据

- (void)readHealthPersonInfo

{

    if ([UIDevice currentDevice].systemVersion.floatValue >=9.0)

    {

        NSLog(@"\n\n");

        NSLog(@"数据从这天%@才能读到, [_healthStore earliestPermittedSampleDate]);

    }

    NSError *error = nil;

    NSDate *b = [_healthStore dateOfBirthWithError:&error];

    if (!error) NSLog(@"出生日期=%@", b);

    else NSLog(@"出生日期error=%@", error);

    

    error = nil;

    HKBiologicalSexObject *s = [_healthStore biologicalSexWithError:&error];

    if (!error) {

        NSLog(@"性别=%@", @(s.biologicalSex));

    } else {

        NSLog(@"性别error=%@",error);

    }

    

    error = nil;

    HKBloodTypeObject *blood = [_healthStore bloodTypeWithError:&error];

    if (!error) {

        NSLog(@"血型=%@", @(blood.bloodType));

    } else {

        NSLog(@"血型error=%@",error);

    }

    

    error = nil;

    HKFitzpatrickSkinTypeObject *fitz = [_healthStore fitzpatrickSkinTypeWithError:&error];

    if (!error) {

        NSLog(@"日光反应型皮肤类型=%@", @(fitz.skinType));

    } else {

        NSLog(@"日光反应型皮肤类型error=%@",error);

    }

}


上一篇:Json.Net6.0入门学习试水篇


下一篇:主动学习入门篇:如何能够显著地减少标注代价