最后,对于支持的设备和仅在iOs8中,CMMotionActivity还具有另一种跟踪功能,即“循环”#34;
然而,无论我怎么努力,都无法让设备(iPhone 5S)检测骑行。这是我的代码:
CMMotionActivityManager *manager = [[CMMotionActivityManager alloc]init];
[manager startActivityUpdatesToQueue:[NSOperationQueue mainQueue] withHandler:^(CMMotionActivity *activity) {
if(activity.running){
_txtMoveType.text = @"running";
}
if(activity.walking){
_txtMoveType.text = @"walking";
}
if(activity.automotive){
_txtMoveType.text = @"driving";
}
if(activity.stationary){
_txtMoveType.text = @"standing";
}
if(activity.cycling){
_txtMoveType.text = @"going on bike";
UIAlertView*alert = [[UIAlertView alloc]initWithTitle:@"Bike!" message:@"you are riding a bike, aren't you?" delegate:self cancelButtonTitle:@"Yay!" otherButtonTitles:nil];
[alert show ];
}
}];
我不确定为什么活动经理没有检测到骑行,因为它确实能很好地检测出任何支持的活动。
我还试图用
查询过去的活动- (void)startActivityUpdatesToQueue:(NSOperationQueue *)queue
withHandler:(CMMotionActivityHandler)handler;
但结果并没有改变。实际上,也可以在新的HealthKit应用程序中检查这些活动,并且没有骑自行车的痕迹。
任何想法?
答案 0 :(得分:3)
好的,我在iOs8""文件(参考文献上没有任何痕迹)
核心动作框架 Core Motion提供两个新类(CMAltimeter和CMAltitudeData),允许您访问iPhone 6和iPhone 6 Plus上的气压计。在这两个设备上,您还可以使用CMMotionActivity对象来确定用户是否在自行车上。 "
似乎没有静态方法来测试设备是否受支持:
[CMPedometer isStepCountingAvailable]//returns YES on Iphone 5S
[CMPedometer isDistanceAvailable]//returns YES on Iphone 5S
[CMPedometer isFloorCountingAvailable]//returns NO on Iphone 5S
无论如何,单独使用CMMotionActivityManager似乎是不可能的。