iOS_计步_获取运动与健康
发布日期:2021-05-10 10:08:21 浏览次数:33 分类:精选文章

本文共 5278 字,大约阅读时间需要 17 分钟。

iOS ���������������������������CMPedometer���HealthKit���

���iOS���������������������������������������������������������HealthKit���������������������CMPedometer������������������������������������������HealthKit������������������������������������������������������������������������������������������

���������������������������CMPedometer������������������������������������������������������������������������ CMPedometer ���������Info.plist������������������������������������������������������������

1. ������������ CMPedometer ������

������������������������������CMPedometer������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

`#import <Foundation/Foundation.h>

#import <CoreMotion/CoreMotion.h>

FOUNDATION_EXPORT NS_ASSUME_NONNULL_BEGIN @interface CMPedometerManager : NSObject

  • (id)shareCMPedometerManager;

// ���������������������������������������������������������������������������������105������������ // ���������info.plist������������������������������ //

NSMotionUsageDescription
//
������������

// ���������������������������������������NSMotionUsageDescription

����>(void)queryStepsFormDataDate:(NSDate *)startDate toDate:(NSDate *)endDate withHandler:(CMPedometerHandler)handler;

FOUNDATION_EXPORT NS_ASSUME_NONNULL_BEGIN @implementation details ... (������������������������������������������������������������������������������������������)

���������������������������������������������������������������������������������������������������������������������������������������
### 2. ������ CMPedometerManager ���
������CMPedometerManager������������������������������������CMPedometer������������������������������������������������������������������.m������������������������
#### `#import "CMPedometerManager.h"
@interface CMPedometerManager ()
@property (nonatomic, strong) CMPedometer *pedometer;
@end
������������:

id CMPedometerManager = nil; CMPedometer *pedometer = nil;

static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ manager = [CMPedometerManager new]; ometer = [CMPedometer alloc]; });

  • (void)queryStepsFromDate:(NSDate *)startDate toDate:(NSDate *)endDate withHandler:(CMPedometerHandler)handler { if ([CMPedometer isStepCountingAvailable]) { [pedometer queryPedometerDataFromDate:startDate toDate:endDate withHandler:handler]; } else { NSLog(@"������������������������"); } }

// ���������������������

### 3. ������������������
������������������������������

#import <CoreMotion/CoreMotion.h>

@interface CMPedometerManager : NSObject

  • (id)shareCMPedometerManager;
  • (void)queryStepsFormDataDate:(NSDate *)startDate toDate:(NSDate *)endDate withHandler:(CMPedometerHandler)handler;
  • (void)queryStepsFromNowDateWithHandler:(CMPedometerHandler)handler;
  • (void)querySameDayStepsWithHandler:(CMPedometerHandler)handler;

@end

#import "CMPedometerManager.h"

@interface CMPedometerManager ()

@property (nonatomic, strong) CMPedometer *pedometer; @end

@implementation CMPedometerManager

static id manager; static CMPedometer *pedometer;

  • (id)shareCMPedometerManager { static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ manager = [CMPedometerManager new]; ometer = [CMPedometer alloc]; }); return manager; }
  • (void)queryStepsFormDataDate:(NSDate *)startDate toDate:(NSDate *)endDate withHandler:(CMPedometerHandler)handler { if ([CMPedometer isStepCountingAvailable]) { [pedometer queryPedometerDataFromDate:startDate toDate:endDate withHandler:handler]; } else { NSLog(@"������������������������"); } }

  • (void)queryStepsFromNowDateWithHandler:(CMPedometerHandler)handler { [self queryStepsFormDataDate:[NSDate date] toDate:[NSDate date] withHandler:handler]; }

  • (void)querySameDayStepsWithHandler:(CMPedometerHandler)handler { NSCalendar *calendar = [NSCalendar currentCalendar]; NSDateComponents *components = [calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay fromDate:[NSDate date]]; NSDate *startDate = [calendar dateFromComponents:components]; NSDate *endDate = [calendar dateByAddingUnit:NSCalendarUnitDay value:1 toDate:startDate options:0]; [self queryStepsFormDataDate:startDate toDate:endDate withHandler:handler]; }

### 4. ���������������������
1. **������������**������Info.plist������������������������`NSMotionUsageDescription`���`Privacy - Motion Usage Description`���������������������������������������������������������������`NSMotionUsageDescription`������������:`������������`���
2. **������������**���������CMPedometer delegate������������������������������������������������������������������������
3. **������������**�����������������������������������������������������������������������������������������������������������
4. **���������������**���������������������������������������������������������������description���Info.plist������������������������������������������������������������
������������������������������������CMPedometerManager���������������������������������������������������������`queryStepsFromNowDateWithHandler:`������������������������������������������������������
���������������������������������CMPedometer������������������������������iOS���������������������������������������������������������������������������
上一篇:iOS_图片添加水印_文本倾斜
下一篇:iOS_XIB绘制UIScrollerView出现偏移一个状态栏高度

发表评论

最新留言

关注你微信了!
[***.104.42.241]2025年04月07日 07时26分22秒