[objc] view plaincopy
  1. #pragma mark - 获取步数从HealthKit
  2. - (void)getstepCountFromHealthKit
  3. {
  4. HKQuantityType *type = self.items[5];
  5. //这个函数是获取苹果健康里面的全部步数包括人为添加的
  6. [self fetchQuantity:typecompletionHandler:^(NSArray *result,NSError *error) {
  7. dispatch_async(dispatch_get_main_queue(), ^{
  8. if (error)
  9. {
  10. //从苹果健康获取步数失败
  11. NSLog(@"error:%@",error);
  12. [PersonInfo sharePersonInfo].isAllow = NO;
  13. }
  14. else if ([resultcount] == 0)
  15. {
  16. //没有步数
  17. [PersonInfo sharePersonInfo].isAllow = YES;
  18. }
  19. // succeeded to retrieve the health data
  20. else
  21. {
  22. [PersonInfo sharePersonInfo].isAllow = YES;
  23. //这个函数是去除人为添加的,留下系统记录的步数
  24. NSArray *array = [selfgetRealHealthData:result];
  25. //统计数组里面的步数
  26. NSInteger allArrStepCount = 0;
  27. //一个数组的添加
  28. for (NSDictionary *dictin array)
  29. {
  30. NSInteger stepCount = [dict[@"stepCount"]integerValue];
  31. allArrStepCount = allArrStepCount + stepCount;
  32. NSString *dateTime = dict[@"dateTime"];
  33. [_dateTimeArr addObject:dateTime];
  34. }
  35. NSString *value = [NSStringstringWithFormat:@"%ld",(long)allArrStepCount];
  36. [selfsetStepCountAboutDataBase:value locationCount:1getArr:array];
  37. }
  38. });
  39. }];
  40. }
  41. #pragma mark - 从健康中获取真实数据 --去除人为添加的
  42. - (NSArray *)getRealHealthData:(NSArray *)resultArr
  43. {
  44. NSMutableArray *returnArr = [[NSMutableArrayalloc]init];
  45. HKQuantityType *stepType = [HKObjectTypequantityTypeForIdentifier:HKQuantityTypeIdentifierStepCount];
  46. for (HKQuantitySample *modelin resultArr)
  47. {
  48. //HKQuantity 类存储了给定单位的值,此值和单位就构成了数据。和 HKUnit类一样,在使用它时,需要进行实例化。实例化 HKQuantity需要使用到 init(unit:doubleValue:)方法。它可以用来创建一个 quantity(数量)对象。
  49. HKQuantity *resultQuantity = model.quantity;
  50. HKUnit *unit = [TTMHealthKitHelperdefaultUnitForQuantityType:stepType];
  51. double valueDou = [resultQuantity doubleValueForUnit:unit];
  52. NSString *value = [NSStringstringWithFormat:@"%.0f",valueDou];
  53. //NSString *startDateStr = [RequestHelper getDateStrFromDate:model.startDate];
  54. NSString *endDateStr   = [RequestHelpergetDateStrFromDate:model.endDate];
  55. NSDictionary *dict = (NSDictionary *)model.metadata;
  56. NSInteger wasUserEntered = [dict[@"HKWasUserEntered"]integerValue];
  57. if(wasUserEntered == 1)
  58. {
  59. //这是用户自己手动添加的数据
  60. //NSLog(@"value == %@",value);
  61. }
  62. else
  63. {
  64. //这是苹果HealthKit记录的数据
  65. NSDictionary *dictReturn = @{@"dateTime":endDateStr,@"stepCount":value};
  66. [returnArr addObject:dictReturn];
  67. }
  68. }
  69. return returnArr;
  70. }

iOS-获取手机健康步数,去除人为添加的数据相关推荐

  1. iOS 获取手机步数

    在iphone设备中我们应该如何的去获取用户所走的步数,其实大概可以有三种方式 1.利用HealthKit框架从健康App中去获取步数,缺点 2.可以利用废弃的CMStepCounter 3.利用 C ...

  2. ios获取手机序列号_iOS-获取手机唯一标识符(获取苹果手机IMEI,获取苹果手机MAC)...

    一.iOS7以后不能获取手机IMEI iOS2.0版本以后UIDevice提供一个获取设备唯一标识符的方法uniqueIdentifier,通过该方法我们可以获取设备的序列号, 这个也是目前为止唯一可 ...

  3. iOS 获取手机的ip地址 并传给后台(三步搞定)

    第一步 创建一个NSObject 文件 .h 文件 写 #import <Foundation/Foundation.h> @interface NSObject (GetIP) + (N ...

  4. ios获取手机型号、系统版本、设备唯一标识符、手机运营商等

    直接代码: //设备唯一标识符NSString *identifierStr = [[[UIDevice currentDevice] identifierForVendor] UUIDString] ...

  5. 获取手机通讯录-----1.1(取出通讯录数据)

    获取手机通讯录在开发中经常会用到,这边记下日后查看. 1.获取手机通讯录是要取得系统权限的将下面权限添加到AndroidManifest文件中(我经常在权限问题上吃亏,经常代码写好了,也没有错,就是出 ...

  6. ios获取手机 meid_共享充电宝并不简单,iOS也顶不住,隐私信息直接暴露

    现在由于手机的功能越来越多,屏幕越来越大,电池都是感觉慢慢的不够用了起来,对于这个问题,其实现在有很多的共享充电宝,所以大家也都不那么担心,但是实际上使用共享充电宝也是存在一定程度的风险的,只是大家都 ...

  7. iOS获取手机唯一标识符来判断不同终端登录(IDFA和UUID分析)

    11.13更新 广告标示符,适用于对外:例如广告推广,换量等跨应用的用户追踪等. 是iOS 6中另外一个新的方法,提供了一个方法advertisingIdentifier,通过调用该方法会返回一个NS ...

  8. iOS 获取手机上已经安装的应用

    前言 公司内部有一给自己的 App 发布后台,类似于 FIR 那样的存在, 有完整的 LDAP 账号登录.每天的 daily build 和 历史发布版都会放到那里去.然而每次都要登录后台扫描二维码下 ...

  9. iOS 获取手机倾斜角度

    1.引入头文件<CoreMotion/CoreMotion.h> 以及在linked里加入这个包. 2.在需要获取的位置添加以下代码: CMMotionManager *motionMan ...

最新文章

  1. 如何在Linux中使用Shell脚本终止用户会话?
  2. 人类基因组注释包org.Hs.eg.db
  3. 韩春雨,时隔六年再发高分论文
  4. 【新星计划】MATLAB-冒号:符号详解
  5. mysql创建非聚集索引_一文看懂聚集索引和非聚集索引的区别
  6. 【数据竞赛】数据竞赛中最贵的四个特征
  7. spring boot项目配置RestTemplate超时时长
  8. numpy安装失败-小失误
  9. (Ipython)Matplotlib 中将二叉树可视化
  10. 实验一(高见老师收)
  11. PHP调整图片饱和度,window_Win10系统电脑屏幕的饱和度如何调整?,什么是饱和度? 对电脑来说 - phpStudy...
  12. 博客系统评论模块列表转树形结构
  13. 信息学奥赛一本通 1956:【11NOIP普及组】表达式的值 | 洛谷 P1310 [NOIP2011 普及组] 表达式的值
  14. 很全的C51库函数(IIC类)(IIC、EEPROM、ADXL、PCF、HMC、L3G、BMP)
  15. c语言 iostream,C语言 我应该在哪里使用iostream类?
  16. 信号与系统实验四 LTI系统的时域分析
  17. Python matplot工具包之一的 mpl_toolkits绘制属于你的世界地图
  18. 最新仿淘宝源码使用原生HTML+CSS描写
  19. 寂寞沙洲冷c语言程序,周传雄《寂寞沙洲冷》吉他谱简单版 酷音小伟吉他弹唱教学吉他谱...
  20. 《爱情公寓》电影,让我十年的情怀,一瞬间都喂了狗

热门文章

  1. Android开发:登录/注册界面的编写
  2. 1加9pro刷个lineageOS Android11
  3. 手机电视机屏幕分辨率
  4. 使用telnet连接qq pop服务器拉取邮件
  5. 《这个历史挺靠谱·上·袁腾飞讲中国史》读后感
  6. python对excel操作简书_python Excel 写
  7. 一篇入门Android UI 设计
  8. DM达梦数据库存储过程和触发器
  9. 永不过时的优雅 KOREANO ESSENTIAL 2022秋冬系列全新上市
  10. 系统调用的概念及原理