利用系統(tǒng)healthKit獲取每天運(yùn)動(dòng)的步數(shù)

在運(yùn)動(dòng)型或者健康管理類的項(xiàng)目當(dāng)中HeathKit是必不可少的他可以獲取到用戶的健康數(shù)據(jù)

iOS8以后蘋果系統(tǒng)增加了健康手,開發(fā)者可以利用HealthKit獲取到系統(tǒng)的步數(shù)信息

1. 要獲取到用戶的權(quán)限,經(jīng)過(guò)用戶同意之后才能獲取到健康數(shù)據(jù)


![44198C07-B52D-4441-A315-98CE1689320B.png](http://upload-images.jianshu.io/upload_images/1765107-fad27efa7f41b8c1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

   if (![HKHealthStore isHealthDataAvailable]) {
    
        NSLog(@"不支持獲取步數(shù)");
}
    self.healthStore = [[HKHealthStore alloc] init];

//設(shè)置需要獲取的權(quán)限
    HKObjectType *objectType = [HKObjectType quantityTypeForIdentifier:HKQuantityTypeIdentifierStepCount];
    NSSet *healthSet = [NSSet setWithObjects:objectType,nil];
    [self.healthStore requestAuthorizationToShareTypes:nil readTypes:healthSet completion:^(BOOL success, NSError * _Nullable error) {
    if (success) {   
        //獲取步數(shù)的方法接下來(lái)去實(shí)現(xiàn)這個(gè)方法
        [self readStepCount];
        }
  }];


2. #pragma mark -- /*獲取步數(shù)方法*/
- (void)readStepCount {

    HKSampleType *sampleType = [HKSampleType quantityTypeForIdentifier:HKQuantityTypeIdentifierStepCount];

    NSSortDescriptor *start = [NSSortDescriptor sortDescriptorWithKey:HKSampleSortIdentifierStartDate ascending:NO];

    NSSortDescriptor *end = [NSSortDescriptor sortDescriptorWithKey:HKSampleSortIdentifierEndDate ascending:NO];

//獲取當(dāng)前的時(shí)間進(jìn)行對(duì)比
    NSDate *date = [NSDate date];
    NSCalendar *calendar = [NSCalendar currentCalendar];
    NSUInteger unitFlags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
    NSDateComponents * dateComponents = [calendar components:unitFlags fromDate:date];

    int hour = (int)dateComponents.hour;
    int minute = (int)dateComponents.minute;
    int second = (int)dateComponents.second;
    NSDate *nowDay = [NSDate dateWithTimeIntervalSinceNow:-(hour *3600 + minute * 360 + second)];
    NSLog(@"今天%@",nowDay);
    NSDate *nextDay = [NSDate dateWithTimeIntervalSinceNow:- (hour *3600 + minute * 360 + second) + 86400];
    NSLog(@"明天%@",nextDay);
    NSPredicate *predicate = [HKQuery predicateForSamplesWithStartDate:nowDay endDate:nextDay options:HKQueryOptionNone];
    HKSampleQuery *sampleQuery = [[HKSampleQuery alloc] initWithSampleType:sampleType predicate:predicate limit:0 sortDescriptors:@[start,end] resultsHandler:^(HKSampleQuery * _Nonnull query, NSArray<__kindof HKSample *> * _Nullable results, NSError * _Nullable error) {
        int allStepCount = 0;
        for (int i = 0; i < results.count ; i++) {
            HKQuantitySample *result = results[i];
            HKQuantity *quantity = result.quantity;
            NSMutableString *mutableString = (NSMutableString *)quantity;
            NSString *step = [NSString stringWithFormat:@"%@",mutableString];
        //獲取51 count此類字符串前面的數(shù)字
            NSString *str = [step componentsSeparatedByString:@" "][0];
            int stepNum = [str intValue];
            NSLog(@"%d",stepNum);
        //把一天中所有時(shí)間段中的步數(shù)加到一起
            allStepCount = allStepCount + stepNum;
        }
        self.countLabel.text = [NSString stringWithFormat:@"你今天走了%d",allStepCount];
    }];
    [self.healthStore  executeQuery:sampleQuery];    
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末鹿响,一起剝皮案震驚了整個(gè)濱河市沉删,隨后出現(xiàn)的幾起案子匪燕,更是在濱河造成了極大的恐慌留荔,老刑警劉巖梳玫,帶你破解...
    沈念sama閱讀 222,865評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異滓彰,居然都是意外死亡碑隆,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門勋功,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)坦报,“玉大人,你說(shuō)我怎么就攤上這事狂鞋∑瘢” “怎么了?”我有些...
    開封第一講書人閱讀 169,631評(píng)論 0 364
  • 文/不壞的土叔 我叫張陵骚揍,是天一觀的道長(zhǎng)字管。 經(jīng)常有香客問(wèn)我,道長(zhǎng)信不,這世上最難降的妖魔是什么嘲叔? 我笑而不...
    開封第一講書人閱讀 60,199評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮抽活,結(jié)果婚禮上硫戈,老公的妹妹穿的比我還像新娘。我一直安慰自己下硕,他們只是感情好丁逝,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,196評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著卵牍,像睡著了一般果港。 火紅的嫁衣襯著肌膚如雪沦泌。 梳的紋絲不亂的頭發(fā)上糊昙,一...
    開封第一講書人閱讀 52,793評(píng)論 1 314
  • 那天,我揣著相機(jī)與錄音谢谦,去河邊找鬼释牺。 笑死,一個(gè)胖子當(dāng)著我的面吹牛回挽,可吹牛的內(nèi)容都是我干的没咙。 我是一名探鬼主播,決...
    沈念sama閱讀 41,221評(píng)論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼千劈,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼祭刚!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,174評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤涡驮,失蹤者是張志新(化名)和其女友劉穎暗甥,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體捉捅,經(jīng)...
    沈念sama閱讀 46,699評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡撤防,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,770評(píng)論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了棒口。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片寄月。...
    茶點(diǎn)故事閱讀 40,918評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖无牵,靈堂內(nèi)的尸體忽然破棺而出漾肮,到底是詐尸還是另有隱情,我是刑警寧澤合敦,帶...
    沈念sama閱讀 36,573評(píng)論 5 351
  • 正文 年R本政府宣布初橘,位于F島的核電站,受9級(jí)特大地震影響充岛,放射性物質(zhì)發(fā)生泄漏保檐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,255評(píng)論 3 336
  • 文/蒙蒙 一崔梗、第九天 我趴在偏房一處隱蔽的房頂上張望夜只。 院中可真熱鬧,春花似錦蒜魄、人聲如沸扔亥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)旅挤。三九已至,卻和暖如春伞鲫,著一層夾襖步出監(jiān)牢的瞬間粘茄,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工秕脓, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留柒瓣,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,364評(píng)論 3 379
  • 正文 我出身青樓吠架,卻偏偏與公主長(zhǎng)得像芙贫,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子傍药,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,926評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容