Android LocationManager.isProviderEnabled () siempre devuelve falso

Tengo una aplicación que utiliza el proveedor de red para su ubicación. Cada vez que la aplicación se inicia, verifica si el proveedor de red está habilitado utilizando el método isProviderEnabled () en LocationManager. Si devuelve falso, presento una alerta al usuario para que active el proveedor de red y luego use la aplicación. Esta lógica ha estado funcionando realmente bien, con algunas excepciones con dispositivos no certificados por Google (no es una preocupación ya que, por lo general, tampoco tienen la API de Maps). Últimamente, con algunos dispositivos en ICS y ahora en el emulador JellyBean, obtengo un "falso" consistente para isProviderEnabled () aunque esté habilitado.

Desde entonces he cambiado a usar la cadena devuelta desde Settings.Secure.getString (getContentResolver (), Settings.Secure.LOCATION_PROVIDERS_ALLOWED)) para ver si contiene "red". Es un hack pero está funcionando por ahora. Me encantaría poder utilizar el método isProviderEnabled ().

¿Alguien ha visto este problema antes?

Respuestas a la pregunta(2)

Su respuesta a la pregunta