Ich versuche zu erkennen, wenn ein Benutzer ihr iPhone auf ein anderes Objekt stößt, im Gegensatz zu, wenn sie nur ihr Telefon schütteln. Ich kann es scheinbar nicht so perfekt funktionieren lassen, wie ich es will, weil es entweder zu viele Beulen, keine Beulen registriert, oder denkt, dass ein Shake eine Beule ist.CoreMotion Bump vs Shake auf iPhone
Kann jemand meinen Code unten betrachten und Vorschläge anbieten? Ich muss sicher sein, dass das eine oder andere passiert.
// 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");
}
}];
}
}
Ihre API funktioniert nicht mehr? Haben Sie keinen API-Schlüssel, funktioniert das noch? –
Ich habe es versucht. Es ist nicht mehr kompatibel. –