HealthKit 获取健康步数,去除人为添加的数据
来源:互联网 发布:小米2s数据恢复2 编辑:程序博客网 时间:2024/05/10 19:48
原文:http://blog.csdn.net/dynastyting/article/details/51858640
- #pragma mark - 获取步数从HealthKit
- - (void)getstepCountFromHealthKit
- {
- HKQuantityType *type = self.items[5];
- //这个函数是获取苹果健康里面的全部步数包括人为添加的
- [self fetchQuantity:typecompletionHandler:^(NSArray *result,NSError *error) {
- dispatch_async(dispatch_get_main_queue(), ^{
- if (error)
- {
- //从苹果健康获取步数失败
- NSLog(@"error:%@",error);
- [PersonInfo sharePersonInfo].isAllow = NO;
- }
- else if ([resultcount] == 0)
- {
- //没有步数
- [PersonInfo sharePersonInfo].isAllow = YES;
- }
- // succeeded to retrieve the health data
- else
- {
- [PersonInfo sharePersonInfo].isAllow = YES;
- //这个函数是去除人为添加的,留下系统记录的步数
- NSArray *array = [selfgetRealHealthData:result];
- //统计数组里面的步数
- NSInteger allArrStepCount = 0;
- //一个数组的添加
- for (NSDictionary *dictin array)
- {
- NSInteger stepCount = [dict[@"stepCount"]integerValue];
- allArrStepCount = allArrStepCount + stepCount;
- NSString *dateTime = dict[@"dateTime"];
- [_dateTimeArr addObject:dateTime];
- }
- NSString *value = [NSStringstringWithFormat:@"%ld",(long)allArrStepCount];
- [selfsetStepCountAboutDataBase:value locationCount:1getArr:array];
- }
- });
- }];
- }
- #pragma mark - 从健康中获取真实数据 --去除人为添加的
- - (NSArray *)getRealHealthData:(NSArray *)resultArr
- {
- NSMutableArray *returnArr = [[NSMutableArrayalloc]init];
- HKQuantityType *stepType = [HKObjectTypequantityTypeForIdentifier:HKQuantityTypeIdentifierStepCount];
- for (HKQuantitySample *modelin resultArr)
- {
- //HKQuantity 类存储了给定单位的值,此值和单位就构成了数据。和 HKUnit类一样,在使用它时,需要进行实例化。实例化 HKQuantity需要使用到 init(unit:doubleValue:)方法。它可以用来创建一个 quantity(数量)对象。
- HKQuantity *resultQuantity = model.quantity;
- HKUnit *unit = [TTMHealthKitHelperdefaultUnitForQuantityType:stepType];
- double valueDou = [resultQuantity doubleValueForUnit:unit];
- NSString *value = [NSStringstringWithFormat:@"%.0f",valueDou];
- //NSString *startDateStr = [RequestHelper getDateStrFromDate:model.startDate];
- NSString *endDateStr = [RequestHelpergetDateStrFromDate:model.endDate];
- NSDictionary *dict = (NSDictionary *)model.metadata;
- NSInteger wasUserEntered = [dict[@"HKWasUserEntered"]integerValue];
- if(wasUserEntered == 1)
- {
- //这是用户自己手动添加的数据
- //NSLog(@"value == %@",value);
- }
- else
- {
- //这是苹果HealthKit记录的数据
- NSDictionary *dictReturn = @{@"dateTime":endDateStr,@"stepCount":value};
- [returnArr addObject:dictReturn];
- }
- }
- return returnArr;
- }
0 0
- HealthKit 获取健康步数,去除人为添加的数据
- iOS-获取手机健康步数,去除人为添加的数据
- iOS-获取手机健康步数,去除人为添加的数据
- iOS-获取手机健康步数,去除人为添加的数据
- iOS获取健康步数从加速计到healthkit
- iOS获取健康步数从加速计到healthkit
- HealthKit 从健康app中获取步数信息
- iOS利用HealthKit获取健康里的步数和睡眠时间
- IOS -- 获取用户的健康数据的运动步数
- iOS利用HealthKit框架从健康app中获取步数信息
- iOS利用HealthKit框架从健康app中获取步数信息
- iOS利用HealthKit框架从健康app中获取步数信息
- iOS开发 获取系统HealthKit的步数
- iOS使用HealthKit获取今天步数
- ios 健康HealthKit的数据采样
- iOS-OC-修改微信运动步数(读取和修改健康步数HealthKit)
- iOS使用HealthKit框架实现获取今日步数
- iOS使用HealthKit框架实现获取今日步数
- 2005年华中科技大学计算机保研机试真题
- Apache Cassandra 的安装及使用 (一)
- Android沉浸式状态栏以及浅色模式开发
- Selecting courses HDU
- spring+springMVC,声明式事务失效,原因以及解决办法
- HealthKit 获取健康步数,去除人为添加的数据
- 机器视觉.滤波
- jsp中使用replace方法截取
- android(Sqlite数据库)-14
- Linux下mysql的远程连接
- MySQL数据查询
- Java多线程/并发14、保持线程间的数据独立:ConcurrentHashMap应用
- 1034. 有理数四则运算
- Leetcode05——Longest Palindromic Substring && 115 Distinct Subsequences