J'essaie de détecter quand un utilisateur cogne son iPhone sur un autre objet par rapport à quand ils secouent simplement leur téléphone. Je n'arrive pas à le faire fonctionner comme je le veux, parce qu'il enregistre trop de bosses, pas de bosses, ou pense qu'un tremblement est une bosse. Est-ce que quelqu'un peut regarder mon code ci-dessous et offrir des suggestions? Je dois être sûr que l'un ou l'autre arrive.CoreMotion Bump vs Shake sur l'iPhone
// SHAKING
- (void) motionEnded: (UIEventSubtype) motion withEvent:(UIEvent *)event
{
if (motion == UIEventSubtypeMotionShake)
{
[self setNumberOfShakes: [self numberOfShakes] + 1];
[self reloadAllTapShakeData];
}
}
// TAPPING & BUMPING
- (void) setupAccelerometerMonitoring
{
[self setManager: [[CMMotionManager alloc] init]];
if ([[self manager] isDeviceMotionAvailable])
{
[[self manager] setDeviceMotionUpdateInterval: 0.02];
[[self manager] startDeviceMotionUpdatesToQueue: [NSOperationQueue mainQueue] withHandler: ^(CMDeviceMotion * _Nullable motion, NSError * _Nullable error)
{
//NSLog(@"x = %f | y = %f | z = %f", [motion userAcceleration].x, [motion userAcceleration].y, [motion userAcceleration].z);
if (([motion userAcceleration].x > .50 && [motion userAcceleration].x < 1)
|| ([motion userAcceleration].y > .70 && [motion userAcceleration].x < 1)
|| ([motion userAcceleration].z > .80 && [motion userAcceleration].z < 1))
{
NSLog(@"TAPPED ON ANOTHER OBJECT");
}
}];
}
}
Leur API ne fonctionne plus? N'ayant pas de clé API, cela fonctionnera-t-il encore? –
Je l'ai essayé. Ce n'est plus compatible. –