
本文共 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
����>(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 ()
@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���������������������������������������������������������������������������
发表评论
最新留言
关于作者
