最后,对于支持的设备和仅在iOs8,CMMotionActivity有另一个跟踪功能,即“循环”。
然而,无论我如何努力,都没有办法使设备,即一个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应用程序中也可以检查这些活动,而且没有骑车的痕迹。
知道吗?
发布于 2014-09-18 13:02:51
好的,我在“iOs8中的新内容”文档中找到了这个(在引用中没有跟踪)
核心运动框架核心运动提供了两个新的类(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似乎是不可能的。
https://stackoverflow.com/questions/25912415
复制相似问题