2014-09-18 3 views
2

Наконец, для поддерживаемых устройств и только в iOS8 CMMotionActivity имеет еще одну возможность отслеживания, которая является «циклическим».iOs 8, активность ядра и велосипеда

Однако, как бы я ни старался, нет способа сделать устройство, которое является 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, и нет никаких следов езды на велосипеде.

Любая идея?

ответ

3

Хорошо, я нашел это на «Что нового в iOs8» документ (без следов от него по ссылке)

Ядро Motion Framework Ядро 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

+0

Велоспорта ISN обнаружения. t работает в приложении «Здоровье». См. этот threadhttps: //discussions.apple.com/thread/6548678? tstart = 0 (у меня такая же проблема). Если бы я должен был догадаться, я бы сказал, что API не полностью запеченный еще. – redfood

Смежные вопросы