ubicacion tiempo studio real obtener google geolocalizacion crear coordenadas compartir app activar android gps location locationmanager

tiempo - obtener ubicacion android studio 2017



Android: ¿cómo arreglar gps con coordenadas simuladas(falsas)? (1)

Qué lugares simulados necesitan:

<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION">

También en la configuración del teléfono Android, asegúrese de tener marcada la casilla "Permitir ubicaciones simuladas"

locationManager.addTestProvider(mocLocationProvider, false, false, false, false, true, true, true, 0, 5); locationManager.setTestProviderEnabled(mocLocationProvider, true);

. Ahora, cuando quiera enviar una ubicación, llame a este código:

Location mockLocation = new Location(mocLocationProvider); // a string mockLocation.setLatitude(location.getLatitude()); // double mockLocation.setLongitude(location.getLongitude()); mockLocation.setAltitude(location.getAltitude()); mockLocation.setTime(System.currentTimeMillis()); locationManager.setTestProviderLocation( mocLocationProvider, mockLocation);

.

Pero esto solo funciona la primera vez

Porque lo llamaste una vez.

Tengo que hacer un servicio por lo que quiero hacer

Puedes hacer esto, incluso una AsyncTask hará

haz esto o no: lm.requestLocationUpdates ()

Sí, tienes que hacerlo con el mocLocationProvider

Ya llamo más veces al método setLocation (latitud, longitud) pero funciona (actualización de ubicación) solo la primera vez para google maps

No hay un método llamado setLocation() , use setTestLocation()

Lo que realmente tengo que hacer en asynckTask

Puedes usar un Thread, un TimerTask o cualquier cosa que desees. La idea es inyectar ubicación cada segundo en el Marco.

Estoy tratando de arreglar el GPS programáticamente cuando la señal de GPS no está disponible. Quiero hacer esto para proporcionar coordenadas simuladas a otras aplicaciones como google maps y otros. Intenté usar GPS_PROVIDER y NETWORK_PROVIDER pero solo con este último puedo obtener una nueva ubicación válida para google maps. Pero esto solo funciona la primera tima y si quiero volver a arreglar más lugares simulados, google maps no ve ningún cambio ... ¿por qué? Tengo que hacer un servicio por lo que quiero hacer?

public void setLocation(double latitude, double longitude) { //mocLocationProvider = LocationManager.GPS_PROVIDER; mocLocationProvider = LocationManager.NETWORK_PROVIDER; lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); lm.clearTestProviderEnabled(mocLocationProvider); lm.requestLocationUpdates(mocLocationProvider,0,0,new llistener()); lm.addTestProvider(mocLocationProvider, false, false, false, false, false, false, false, 0, 10); lm.setTestProviderEnabled(mocLocationProvider, true); Location loc = new Location(mocLocationProvider); loc.setTime(System.currentTimeMillis()); loc.setLatitude(latitude); loc.setLongitude(longitude); loc.setAccuracy(10); lm.setTestProviderStatus(mocLocationProvider, LocationProvider.AVAILABLE,null, System.currentTimeMillis()); lm.setTestProviderLocation(mocLocationProvider, loc); }

y oyente de ubicación

public class llistener implements LocationListener { @Override public void onLocationChanged(Location loc) { // TODO Auto-generated method stub } @Override public void onProviderDisabled(String provider) { // TODO Auto-generated method stub } @Override public void onProviderEnabled(String provider) { // TODO Auto-generated method stub } @Override public void onStatusChanged(String provider, int status, Bundle extras) { } }

Gracias