Ho provato questo progetto su Android e iOS con scarso successo. C'è una buona possibilità che questa roba sia proprio sopra la mia testa. Comunque ho pensato che avrei posto la mia domanda qui come ultimo sforzo.
Sto cercando di capire quando un dispositivo viene ruotato o capovolto. La mia app dovrebbe sapere quando ha fatto un 180, 360 o se il dispositivo è stato ruotato verticalmente.
Nel tentativo di capire come funziona, ho provato a scaricare due progetti di esempio: AccelerometerGraph e CoreMotionTeapot. Con questi e un mix di altre cose che ho capito che stavo cercando in questo modo:sensore di movimento, rotazione di lettura
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.");
}
Ma io non so come raccogliere le informazioni richieste (orizzontale e rotazioni verticali) da questi tre valori (x, y, z).
Esattamente quale tipo di rotazione stai cercando? Ad esempio, la situazione più semplice sarebbe che il telefono si trovi con lo schermo verso l'alto sul tavolo e quando lo si mette con lo schermo verso il basso, esso ha ruotato di 180 gradi (attorno a qualsiasi asse). Ma cosa costituisce una rotazione di 90 gradi? È dalla sua parte? Sta in piedi? O stai cercando una soluzione in cui stai tenendo il tuo dispositivo in un orientamento casuale e vuoi sapere quando ha ruotato di 180 gradi in qualsiasi direzione entro, diciamo, 2 secondi? Cioè una soluzione molto generale, ma molto interessante :) – Desmond
In nessun modo stavo cercando di farti venire la tua idea. :) Mi dispiace per quello. Ma capisco il tuo problema ora. Può essere fatto, ma questo è difficile da fare ed è improbabile che una risposta "semplice" su stackoverflow.com possa fare. Mi hai incuriosito, sembra molto divertente da costruire! – Desmond
andando a provare e convertire questi numeri in gradi e vedere se aiuta: http://stackoverflow.com/questions/4576493/how-can-i-use-sensormanager-getorientation-for-tit-controls-like-my- paper-plan –