¿Permite que Wi-Fi drene más o less batería cuando se rastrea la location?

Tengo una aplicación mobile (iOS y Android) que pings la location ~ cada 15 segundos y se utiliza en las zonas urbanas.

Desde mi entendimiento

  • Si Wi-Fi está desactivado, la aplicación usará solo GPS para la location
  • Si Wi-Fi está habilitado, la aplicación utilizará una mezcla de Wi-Fi y GPS o simplemente Wi-Fi

En general, Wi-Fi en los desagües más batería sin embargo, si usted está rastreando la location, entonces podría ahorrar batería, ya que el GPS requiere más batería que Wi-Fi (¡creo!)

¿Alguien tiene datos si habilitar (pero no conectarse) Wi-Fi será mejor o peor para la duración de la batería?

Habilitar Wi-Fi debería ser bueno para la duración de la batería, pero depende completamente de cómo se codifica su aplicación. Si echa un vistazo a la página de Android en las Estrategias de location , dice: 'GPS, Cell-ID y Wi-Fi pueden proporcionar una pista sobre la location de los usuarios. Determinar qué usar y confiar es una cuestión de equilibrio en la precisión, la velocidad y la eficiencia de la batería .

Es posible get la location desde solo Wi-Fi (¡sí, desconectada!):

netLocation = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); 

pero esta puede no ser la solución más precisa. El GPS usa una buena cantidad de energía, pero obviamente es más preciso que WiFi, y la búsqueda de puntos de acceso Wifi desconectados también toma energía. En otras palabras, esta es una pregunta muy complicada.

Con todo, la mejor solución (para evitar pasar todo su time codificando esta location) es solo integrar los services de Google Play en su aplicación. A continuación, puede especificar la prioridad de encontrar la location (potencia o precisión) y Google lo orderará por usted (consulte esto o los documentos oficiales de google aquí ).

 protected void createLocationRequest() { mLocationRequest = new LocationRequest(); mLocationRequest.setInterval(15000); mLocationRequest.setFastestInterval(5000); mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); } protected void startLocationUpdates() { LocationServices.FusedLocationApi.requestLocationUpdates( mGoogleApiClient, mLocationRequest, this); } @Override public void onLocationChanged(Location location) { mLastLocation = location; } 

Las otras prioridades son PRIORITY_BALANCED_POWER_ACCURACY, PRIORITY_LOW_POWER, PRIORITY_NO_POWER.

Sin embargo, vuelve a la pregunta. Si miramos nuevamente la página de Android en las Estrategias de location y nos desplazamos hacia abajo, dice: "Dependiendo del entorno en el que se utiliza la aplicación o del nivel de precisión deseado, puede optar por utilizar únicamente el proveedor de location de networking o solo el GPS, en lugar de ambos. Interactuar con solo uno de los services networkinguce el uso de la batería a un costo potencial de precisión. '

A partir de esto, podemos deducir que usar Wi-Fi y GPS proporciona una location más precisa que usar solo uno , pero que usar solo usa less energía que usar ambos. SIN EMBARGO, esto depende del entorno. Como su aplicación está diseñada para su uso en entornos URBAN, a menudo es más difícil get señales de GPS (debido a edificios). Pero get una location de WiFi solo no funciona todo el time (incluso en entornos urbanos). Sin embargo, para su aplicación, ya que se usa en entornos URBAN, creo que usar WiFi Y GPS será la opción más eficiente para usted, ya que a veces es posible que el GPS no esté disponible o que tarde mucho en conectarse (en zonas urbanas ambientes) Recuerde, en entornos urbanos las personas pueden perder el GPS (por ejemplo, entran en una tienda o en un callejón muy estrecho). Pero si tiene Wi-Fi, es de esperar que aún pueda tener su location. Otra posible opción para pensar es tratar de get su location usando WiFi solo al principio, y luego probar el GPS solo si no puede get su location usando Wi-Fi. Pero esto depende de cuán precisa sea su location. Con todo, solo déjelo a Google (como se muestra arriba).

En respuesta a su pregunta, depende de cómo encuentre la location del usuario. Te sugerí cómo codificar tu aplicación, pero si quieres dejarla tal como está, publica o comenta el código que estás usando, encuentra la location del usuario para que se pueda determinar qué opción es más eficiente.

EDIT: He visto que se trata de iOS, así como de Android. iOS proporciona mucho less control sobre cómo se determina la location. Simplemente conectas la precisión deseada y Apple hace el rest. Apple determinará la manera más eficiente de get la location con el mejor consumo de energía y se aplicará lo mismo que he escrito anteriormente. De todos modos, Apple pedirá a los usuarios que activen el WiFi si está deshabilitado al get la location, por lo que tratar de evitar el uso de Wi-Fi para la location en iOS es prácticamente imposible.

El consumo de energía del GPS es extremadamente alto en comparación con WiFi. La mayoría de los teléfonos duran less de 10 horas en el GPS, mientras que con WiFi pueden durar más de un día.

Wi-Fi no es solo para la location o Internet, sino que tiene múltiples usos, si está utilizando os anteriores a Marshmallow, no puede deshabilitar todas las funciones para usar WiFi mientras está encendido.

desde Marshmallow puede habilitarlo para el uso específico como solo location. por lo que consumirá less energía que el GPS.

mientras que en la versión anterior, el GPS está en condición de ganar en consumo de energía. https://android.stackexchange.com/a/127571/116948

No tengo datos incondicionales sobre el tema, y ​​dudo que alguien tenga numbers concretos, pero teóricamente el Wi-Fi será mucho mejor que el GPS. La teoría funciona de la siguiente manera: para que un GPS sepa dónde está alguien, necesita recibir información de 3 objects diferentes en ubicaciones conocidas y usar la triangulación para calcular su location a partir de eso, mientras que Wi-Fi solo necesita hacer una llame al repetidor de Internet más cercano, que tiene una location conocida y una ruta conocida. Para garantizar la precisión, esto se hace a menudo varias veces con cada request de location. Por lo tanto, las llamadas adicionales se sumn y Wi-Fi será más eficiente.

Use Wi-Fi cada vez que tenga acceso a una networking porque usa less batería que el GPS. (Distancia más corta, menor potencia). Apague WiFi cuando no tenga acceso a una networking; de lo contrario, seguirá buscando una networking Wi-Fi que pueda usar (que agota la batería).