uso el administrador de ubicación de eventos significativos en ios, pero parece que no está basado en el cambio de celda según lo afirmado.evento de ubicación significativo de iphone no relacionado con el cambio de celda
utilicé una aplicación simple que utilizaba un evento de ubicación significativo, pero no pude obtener una respuesta repetible, consistente o sensible del ios sdk.
tracé la ruta (línea azul), las torres de telefonía (marca de lugar) y una cuadrícula de 1000m2 (casilla azul) en el mapa a continuación. map showing route
la ruta era 5000m de distancia.
lo conduje 3 veces.
- test1. recibió 2 sig eventos
- test2. ninguno
- prueba3. eventos 1 sig recibidos
antes de quejarse de que mi prueba es demasiado pequeña, he estado monitoreando otras rutas de prueba durante días y todas muestran la forma incoherente.
esperaba que el evento sig se basara en la conmutación de la torre de la célula. así que usé una aplicación jailbreak llamada 'señal' para identificar qué es la celda activa. (NB.it es sorprendente qué celda está activa. No es lo que esperaría)
Al monitorear la aplicación de 'señal', las celdas cambiaron 6-7 veces por lo que noté.
aún no recibí 6-7 eventos sig. Entonces no puedo ver ninguna correlación entre el cambio de células y eventos significativos.
así que tengo las siguientes preguntas
- Q1. ¿Cuál es el evento significativo desencadenante?
- Q2. ¿Por qué el resultado no es confiable/inconsistente?
- Q3. ¿Cómo puedo lograr que mi aplicación reciba eventos significativos consistentes y sensibles a 500m?
Este es el código que se ejecuta en la aplicación de prueba
-(void)initLocationManager {
if (locationManager == nil) {
self.locationManager = [[[CLLocationManager alloc] init] autorelease];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[locationManager startUpdatingLocation];
[locationManager stopUpdatingLocation];
[locationManager startMonitoringSignificantLocationChanges];
}
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[self initLocationManager];
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
return YES;
}
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation {
NSLog(@"%@", newLocation);
[[NSNotificationCenter defaultCenter]
postNotificationName:@"PositionUpdate" object:nil];
}
-lp
correcto utilizando la posición CoreLocation después de un evento sig es lo que estoy usando ahora. Pero obtener el evento sig es mi problema. Ni siquiera puedo presentar un error porque el documento es tan vago. – lpic
Tendrás que renunciar a las cosas sig change para iOS 4 porque está diseñado para disparar en los cambios de varios kilómetros. Y reevaluar con iOS 5, porque PODRÍA haber una mejora allí para usar WiFi para eso. :-) – Cocoanetics
iOS 5 usa wifi para una monitorización de cambios significativa solo cuando el dispositivo está conectado a una fuente de alimentación (al menos según mis observaciones). Si no está conectado, probablemente no utilizará wifi para cambios significativos. – Kevlar