2010-02-18 21 views
13

El uso de reconocimiento de ubicación en el iPhone desencadena la "X desea utilizar su ubicación actual" - "No permitir"/"Aceptar". En la documentación CLLocationManager, se indica:¿Cuáles son las reglas detrás de "X desea utilizar su ubicación actual" en el iPhone?

"El usuario tiene la opción de denegar el acceso de una aplicación a los datos del servicio de ubicación. Durante su uso inicial por una aplicación, el marco Core Location solicita al usuario que confirme que el servicio de localización es aceptable. Si el usuario niega la solicitud, el objeto CLLocationManager informa un error apropiado a su delegado en futuras solicitudes ".

Encontré que los "usos iniciales" son dos veces si presiona "Aceptar" para permitir los servicios de ubicación. A partir de la tercera vez, el iPhone recordará su configuración para todos los usos futuros de la aplicación.

Sin embargo, un usuario que presiona "No permitir" se molestará constantemente cada vez que una parte de la aplicación intente utilizar servicios de ubicación. Lo he intentado al menos 15 veces en mi propia aplicación, y he pulsado "No permitir" incluso más en la "Guía de espectador móvil oficial de Vancouver 2010". Esto es extremadamente molesto para los usuarios que no desean usar esta característica.

Mis preguntas:

  • Para todas las aplicaciones, el iPhone le preguntará dos veces y recordar la configuración si se golpea "OK". ¿Es esta una observación correcta?
  • ¿Existe un límite en la cantidad de intentos que iPhone continuará solicitando si presiona "No permitir", o nunca se recuerda? Como manejas esto? Dado que se le notifica a locationManager: didFailWithError: supongo que puede aumentar una propiedad del contador cada vez y persistir en esto. La próxima vez que se usa la aplicación, esta configuración se verifica en mi propio código. Si el contador> = 2, no use la ubicación central.
  • La única forma que encontré para eliminar el ajuste "OK" una vez que se recuerda, es restableciéndolo para TODAS las aplicaciones en General -> Restablecer -> Advertencias de ubicación. ¿Hay alguna manera de hacer esto solo para una aplicación o desde mi propio código?
+0

De hecho, creo que esto es un buen comportamiento. Si el usuario sigue utilizando su aplicación pero no los Servicios de localización, ¿qué tan vital es tener incluso los Servicios de localización allí? – bpapa

+0

He creado la aplicación Map y pretendo lanzarla en el mercado de aplicaciones. mi pregunta es ... ¿Tenemos que configurar la alerta OK/Dont Allow anterior a través de la codificación? Si es así, entonces me redirigió el enlace de ejemplo. Gracias por adelantado. –

Respuesta

5
  1. Sí, siempre le pedirá dos veces. Tipo de imho extraño y poco intuitivo. Tengo entendido que esto es en caso de que presionas el botón incorrecto la primera vez. Después de eso, asume que sabes lo que querías.

  2. He encontrado lo siguiente en el ejemplo LocateMe:

    "Don't Allow" on two successive app launches is the same as saying "never allow". but I've also read that other folks are seeing the same behavior that you are. Maybe a change in recent OS update? Anyways, your approach sounds reasonable.

  3. No creo que se puede restablecer para una sola aplicación, lo siento.

1

Ahora puede establecer o desarmar una aplicación en la configuración, en General, Servicios de ubicación. ¿Probablemente introducido en 4.0?

Y si usted es un desarrollador registrado, puede consultar los diff de API para obtener la versión beta más reciente. Podrían haber mejorado el manejo de errores.

Cuestiones relacionadas