#import <coremotion/coremotion.h>
// 运动与健身
- (void)motion
{
if ([cmmotionactivitymanager isactivityavailable])
{
cmmotionactivitymanager *motionactivitymanager = [[cmmotionactivitymanager alloc]init];
[motionactivitymanager startactivityupdatestoqueue:[nsoperationqueue mainqueue] withhandler:^(cmmotionactivity *activity) {
nslog(@"confidence=%@ unknown=%@ walking=%@ stationary=%@ running=%@ cycling=%@ automotive=%@ startdate==%@", @(activity.confidence), @(activity.unknown), @(activity.walking), @(activity.stationary), @(activity.running), @(activity.cycling), @(activity.automotive), activity.startdate);
}];
nscalendar *calendar = [[nscalendar alloc] initwithcalendaridentifier:nscalendaridentifiergregorian];
nsdatecomponents *datecom = [calendar components:nsyearcalendarunit | nsmonthcalendarunit | nsdaycalendarunit | nshourcalendarunit | nsminutecalendarunit | nssecondcalendarunit fromdate:[nsdate date]];
nsdate *enddate = [calendar datefromcomponents:datecom];
[datecom sethour:0];
[datecom setminute:0];
[datecom setsecond:0];
nsdate *startdate = [calendar datefromcomponents:datecom];
[motionactivitymanager queryactivitystartingfromdate:startdate todate:enddate toqueue:[nsoperationqueue mainqueue] withhandler:^(nsarray<cmmotionactivity *> * _nullable activities, nserror * _nullable error) {
for (cmmotionactivity *activity in activities)
{
nslog(@"query confidence=%@ unknown=%@ walking=%@ stationary=%@ running=%@ cycling=%@ automotive=%@ startdate==%@", @(activity.confidence), @(activity.unknown), @(activity.walking), @(activity.stationary), @(activity.running), @(activity.cycling), @(activity.automotive), activity.startdate);
}
[motionactivitymanager stopactivityupdates];
} else
nslog(@"运动与健身 不可用");
}
}