Estoy utilizando el método UIAccelerotmeterDelegate
accelerometer:didAccelerate:
pero recientemente ese método ha quedado obsoleto en iOS 5.0. Entonces, ¿cuál es la forma alternativa de obtener los datos del acelerómetro? La documentación no menciona la alternativa que se supone que debemos usar.¿Cómo obtener datos del acelerómetro en IOS?
11
A
Respuesta
13
Debería utilizar el Core Motion framework (introducido en iOS 4.0) como sustituto. Cree una instancia de CMMotionManager
y dígale que startAccelerometerUpdatesToQueue:withHandler:
, pasándole un NSOperationQueue
y un bloque que se ejecutará en la cola especificada cada vez que haya nuevos datos del acelerómetro disponibles.
5
Parece que UIAccelerometer y UIAccelerometerDelegate fueron reemplazados por el framework CoreMotion.
Puede encontrar la respuesta aquí:
Why is accelerometer:didAccelerate: deprecated in IOS5?
espero que ayude.
3
Es reemplazado por CoreMotion
. Ver Motion Events.
4
Aquí hay un código de muestra útil que encontré para CoreMotion del enlace this.
@interface ViewController()
@property (nonatomic, strong) CMMotionManager *motionManager;
@property (nonatomic, strong) IBOutlet UILabel *xAxis;
@property (nonatomic, strong) IBOutlet UILabel *yAxis;
@property (nonatomic, strong) IBOutlet UILabel *zAxis;
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
self.motionManager = [[CMMotionManager alloc] init];
self.motionManager.accelerometerUpdateInterval = 1;
if ([self.motionManager isAccelerometerAvailable])
{
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
[self.motionManager startAccelerometerUpdatesToQueue:queue withHandler:^(CMAccelerometerData *accelerometerData, NSError *error) {
dispatch_async(dispatch_get_main_queue(), ^{
self.xAxis.text = [NSString stringWithFormat:@"%.2f",accelerometerData.acceleration.x];
self.yAxis.text = [NSString stringWithFormat:@"%.2f",accelerometerData.acceleration.y];
self.zAxis.text = [NSString stringWithFormat:@"%.2f",accelerometerData.acceleration.z];
});
}];
} else
NSLog(@"not active");
}
@end
1
Primero agregue el marco CoreMotion al proyecto. Entonces:
#import <CoreMotion/CoreMotion.h>
@property (strong, nonatomic) CMMotionManager *motionManager;
- (void)viewDidLoad {
_motionManager = [CMMotionManager new];
_motionManager.accelerometerUpdateInterval = 0.01; // 0.01 = 1s/100 = 100Hz
if ([_motionManager isAccelerometerAvailable])
{
NSOperationQueue *queue = [NSOperationQueue new];
[_motionManager startAccelerometerUpdatesToQueue:queue withHandler:^(CMAccelerometerData *accelerometerData, NSError *error){
NSLog(@"X = %0.4f, Y = %.04f, Z = %.04f",
accelerometerData.acceleration.x,
accelerometerData.acceleration.y,
accelerometerData.acceleration.z);
}];
}
}
Cuestiones relacionadas
- 1. iOS comprensión acelerómetro datos de iphone en caída libre
- 2. Filtro de datos del acelerómetro ruido
- 3. Recopilación de datos del acelerómetro en el fondo
- 4. ¿Cómo acceder al acelerómetro iOS en Delphi XE2?
- 5. Calibración del acelerómetro iPhone
- 6. Obteniendo desplazamiento de los datos del acelerómetro con Core Motion
- 7. Componentes de gravedad del acelerómetro
- 8. Filtro de paso bajo del acelerómetro
- 9. Uso del acelerómetro iPhone en un automóvil
- 10. Cómo eliminar el factor de gravedad de las lecturas del acelerómetro en el acelerómetro Android de 3 ejes
- 11. ¿Cómo puedo obtener la dirección de movimiento usando un acelerómetro?
- 12. Uso del acelerómetro para calcular velocidades
- 13. Cómo obtener datos del portapapeles en Firefox
- 14. ¿Cómo acceder a los datos de acelerómetro/giroscopio de Javascript?
- 15. Cómo leer los datos del acelerómetro en el Servicio con Android
- 16. Giroscopio vs Acelerómetro?
- 17. iOS Reconocimiento de gestos utilizando acelerómetro (y giroscopio)
- 18. Obtener datos del portapapeles
- 19. Cómo interpretar las lecturas del acelerómetro desde el iPhone
- 20. Android Speed basado en los valores del acelerómetro
- 21. ¿Es posible ejecutar el acelerómetro del iPhone en segundo plano?
- 22. ¿Cómo uso el acelerómetro Android?
- 23. Cálculo del rumbo magnético utilizando acelerómetro sin procesar y datos del magnetómetro
- 24. Cómo obtener metadatos de imagen en ios
- 25. ¿Cómo utilizar el marco del núcleo bluetooth obtener datos?
- 26. ¿Es posible calcular la velocidad integrando los datos del acelerómetro a lo largo del tiempo?
- 27. Obtener el plano del dispositivo en relación con el plano de tierra con el acelerómetro
- 28. Configurar el acelerómetro iPhone en el modo ± 8g
- 29. Usa acelerómetro en el manifiesto
- 30. iOS: ¿Cómo obtener la duración del gesto de presión prolongada?