MyLocationOverlay o LocationManager para actualizar la ubicación actual

Estoy utilizando MapView para mostrar la ubicación actual de un usuario en un mapa. Para actualizar la ubicación mientras el usuario está en movimiento, tengo que elegir:

  • Puedo usar MyLocationOverlay para dibujar la ubicación actual y extenderla para permitir el seguimiento de la ubicación de los usuarios en movimiento y tener un marcador personalizado. El problema con MyLocationOverlay es que no puedo controlar la frecuencia con la que el dispositivo solicita la ubicación desde el GPS. Estoy preocupado por el drenaje de la batería aquí.
  • Puedo usar el administrador de la localización y suscribir usando requestLocationUpdates para conseguir la localización del GPS. Aquí tengo más control sobre la frecuencia con la que se consulta el GPS. Puedo conectar un LocationListener y escribir el código allí.

Pero he leído aquí en SO que podría no ser un buen enfoque para utilizar el Administrador de Ubicaciones y MyLocationOverlay debe ser preferido sobre esto.

Además, considere que mi aplicación es una aplicación basada en ubicación la ubicación del usuario debe ser rastreado a medida que se mueve.

¿Puede la gente sugerir cuál es el mejor enfoque para implementar y tiene relativamente menos impacto en la batería.

Tenga en cuenta que soy un principiante en Android, por lo que perdón cualquier error obvio.

Gracias de antemano, andy

Uso de Little Fluffy Location – Es una biblioteca, estableces tiempo para actualizaciones o distancia, esta biblioteca hace un receptor de difusión, implementa LocationListener, n notifica tu aplicación cuando cambia la ubicación.

¡Simple, rápido, fácil!

Por favor, consulte este enlace:

¡Después de cambiar la ubicación, actualice su superposición en el mapa! =)

Si usted necesita, envío mi solución completa para las localizaciones.

Usando Pequeño Suelo Ubicación 1º:

En Manifiesto:

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-feature android:name="android.hardware.location" android:required="true" /> <uses-feature android:name="android.hardware.location.gps" android:required="false" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> <Application...> <service android:name="com.littlefluffytoys.littlefluffylocationlibrary.LocationBroadcastService" /> <receiver android:name="com.littlefluffytoys.littlefluffylocationlibrary.StartupBroadcastReceiver" android:exported="true"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver> <receiver android:name="com.littlefluffytoys.littlefluffylocationlibrary.PassiveLocationChangedReceiver" android:exported="true" /> 

2º Crear clase para extender la aplicación

 public class YourApplication extends Application { public void onCreate(){ super.onCreate(); LocationLibrary.showDebugOutput(true); LocationLibrary.initialiseLibrary(getBaseContext(), 0, 2 * 60 * 1000, "com.yourpackage.broadcastpackage"); } public static Context getAppContext() { return ApplicationVexPromoter.context; } } 

3º Crear receptor de difusión

 public class Broadcast extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { final LocationInfo locationInfo = (LocationInfo) intent.getSerializableExtra(LocationLibraryConstants.LOCATION_BROADCAST_EXTRA_LOCATIONINFO); } } 

Y use:

En su actividad:

 public class YourActivity extends Activity { LocationInfo info; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.id.yourview); info = new LocationInfo(getBaseContext()); double latitude = info.lastLat; double longitude = info.lastLong; } } 

¿Necesitar más? Por favor refiérase a esto

¡Funciona para mi!

  • Cómo añadir una barra de acción a la plantilla de actividad de Google Maps predeterminada en Android Studio
  • La API de Google Maps v2 no funciona
  • Androide MapView en el fragmento
  • ¿Cómo puedo utilizar Picasso para agregar icono a Marcador?
  • Una clave de Google Maps para varios desarrolladores (Android)? Eclipse keystore personalizado?
  • Mostrar enormes (alrededor de 50k y más) cantidad de marcadores en el mapa (con agrupación)
  • Escuchar nivel de zoom en google maps v2 en android
  • Adición de múltiples puntos de acceso en Google Maps mediante Android Intent
  • Dibuja rejilla sobre polígono en Google map V2
  • TextView no se muestra en la parte superior del mapa de Google
  • MapView - Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.