He intentado este proyecto tanto en Android como en iOS con poco éxito. Hay una buena posibilidad de que esto esté por encima de mi cabeza. Sin embargo, pensé que publicaría mi pregunta aquí como último esfuerzo.
Estoy tratando de averiguar cuándo un dispositivo se gira o voltea. Mi aplicación debería saber cuándo hizo un 180, 360 o si el dispositivo se volteó verticalmente.
En un intento por comprender la forma en que debería funcionar, traté de descargar dos proyectos de ejemplo: AccelerometerGraph y CoreMotionTeapot. Con estas y una mezcla de otras cosas que he descubierto que estaba tratando esto:sensor de movimiento, rotaciones de lectura
motionManager = [[CMMotionManager alloc] init];
motionManager.accelerometerUpdateInterval = 0.01;
motionManager.deviceMotionUpdateInterval = 0.01;
[motionManager startDeviceMotionUpdates];
if (motionManager.gyroAvailable) {
motionManager.gyroUpdateInterval = 1.0/60.0;
motionManager.deviceMotionUpdateInterval = 0.01;
[motionManager startGyroUpdatesToQueue:[NSOperationQueue currentQueue]
withHandler: ^(CMGyroData *gyroData, NSError *error)
{
CMRotationRate rotate = gyroData.rotationRate;
NSLog(@"rotation rate = [%f, %f, %f]", rotate.x, rotate.y, rotate.z);
}];
} else {
NSLog(@"No gyroscope on device.");
}
Pero no sé cómo reunir la información solicitada (horizontal y rotaciones verticales) a partir de estos tres valores (x, y, z).
Exactamente qué tipo de rotación estás buscando? Por ejemplo, la situación más fácil sería que el teléfono esté tendido con la pantalla hacia arriba sobre la mesa y cuando lo coloque con la pantalla hacia abajo, haya girado 180 grados (alrededor de cualquier eje). Pero, ¿qué constituye una rotación de 90 grados? ¿Está de su lado? ¿Está de pie en posición vertical? ¿O está buscando una solución mediante la cual sostenga su dispositivo en una orientación aleatoria y desee saber cuándo ha girado 180 grados en cualquier dirección dentro de, digamos, 2 segundos? Es decir. una solución muy general, pero muy interesante :) – Desmond
De ninguna manera estaba tratando de sacar tu idea de ti. :) Lamento eso. Pero entiendo tu problema ahora. Se puede hacer, pero esta es una tarea complicada y es dudoso que una respuesta 'simple' en stackoverflow.com sirva. Aunque me has intrigado, parece muy divertido de construir. – Desmond
va a tratar de convertir estos números a grados y ver si esto ayuda: http://stackoverflow.com/questions/4576493/how-can-i-use-sensormanager-getorientation-for-tilt-controls-like-my- plan de papel –