Tema13 3

October 5, 2017 | Autor: E. Monteserin Nadal | Categoria: Android Development
Share Embed


Descrição do Produto

10/12/2014

::: E ­ L E A R N I N G :::

 

Gadgets

Práctica ‐ Posicionamiento con gps Veremos un ejercicio paso a paso que muestre nuestra localización GPS en Android. Nota: con fines metodológicos y para no hacerlo bastante más complejo, el proyecto no comprueba si existe el dispositivo tiene módulo gps. Problema: Abre un nuevo proyecto y ubica los siguientes códigos en sus respectivos archivos. Empezaremos los permisos. La información de localización es material sensible y, por tanto, su acceso está prohibido por defecto a las aplicaciones. Debido a ello, es necesario indicar los permisos necesarios para acceder a ella (Manifest Permission Android): ACCESS_FINE_LOCATION: Permite que una aplicación pueda acceder a la ubicación precisa gracias a las fuentes de ubicación disponibles. ACCESS_COARSE_LOCATION: Permite que una aplicación pueda acceder a la ubicación aproximada gracias a las fuentes de ubicación disponibles. Ambos permisos los declararemos en el archivo de manifiesto añadiendo las líneas: En cuanto al tipo de actividad implemente LocationListener:

que

debe

utilizarse,

no

es

más

que

una

actividad

que

public class MainActivity extends Activity implements LocationListener { LocationManager handle; //Gestor del servicio de localización ………………………………………… public void iniciarServicio(){ //Se activa el servicio de localización servicioActivo = true; botonActivar.setText(R.string.desactivar);

//Crea el objeto que gestiona las localizaciones handle = (LocationManager)getSystemService(Context.LOCATION_SERVICE);

Criteria c = new Criteria(); c.setAccuracy(Criteria.ACCURACY_FINE); //obtiene el mejor proveedor en función del criterio asignado //(la mejor precisión posible)

http://www.plataformateleformacion.com/seguir.php?Val=+1

1/7

10/12/2014

::: E ­ L E A R N I N G :::

provider = handle.getBestProvider(c, true); proveedor.setText(provider); //Se activan las notificaciones de localización con los parámetros: proveedor, tiempo mínimo de actualización, distancia mínima, Locationlistener handle.requestLocationUpdates(provider, 10000, 1, this); //Obtenemos la última posición conocida dada por el proveedor Location loc = handle.getLastKnownLocation(provider); muestraPosicionActual(loc); } Realizaremos una aplicación en la que activemos y desactivemos el servicio de localización mediante un botón, nos muestre el mejor proveedor de servicio obtenido según el criterio de selección asignado, así como nuestra latitud y longitud actual. El layout será de tipo lineal:













Finalmente, el código de la actividad: packagecom.example.gpspos;

importandroid.location.Criteria; importandroid.location.Location; importandroid.location.LocationListener; importandroid.location.LocationManager; import android.os.Bundle; import android.view.View; import android.widget.Button; importandroid.widget.TextView; import android.app.Activity; importandroid.content.Context;

public class MainActivity extends Activity implements LocationListener { LocationManager handle; //Gestor del servicio de localización private boolean servicioActivo;

http://www.plataformateleformacion.com/seguir.php?Val=+1

3/7

10/12/2014

::: E ­ L E A R N I N G :::

private Button botonActivar; private TextView longitud; private TextView latitud; private TextView proveedor; private String provider;

@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);

botonActivar = (Button)findViewById(R.id.BotonActivar); latitud = (TextView)findViewById(R.id.latitud); longitud = (TextView)findViewById(R.id.longitud); proveedor = (TextView)findViewById(R.id.proveedor);

servicioActivo = false; //El botón activar permitirá activar y desactivar el servicio. botonActivar.setOnClickListener(new View.OnClickListener(){ public void onClick(View view){ if(servicioActivo){ pararServicio(); }else{ iniciarServicio(); } } });

} public void pararServicio(){ //Se para el servicio de localización servicioActivo = false; botonActivar.setText(R.string.activar); //Se desactivan las notificaciones handle.removeUpdates(this); http://www.plataformateleformacion.com/seguir.php?Val=+1

4/7

10/12/2014

::: E ­ L E A R N I N G :::

} public void iniciarServicio(){ //Se activa el servicio de localización servicioActivo = true; botonActivar.setText(R.string.desactivar);

//Crea el objeto que gestiona las localizaciones handle = (LocationManager)getSystemService(Context.LOCATION_SERVICE);

Criteria c = new Criteria(); c.setAccuracy(Criteria.ACCURACY_FINE); //obtiene el mejor proveedor en función del criterio asignado //(la mejor precisión posible) provider = handle.getBestProvider(c, true); proveedor.setText(provider); //Se activan las notificaciones de localización con los parámetros: proveedor, tiempo mínimo de actualización, distancia mínima, Locationlistener handle.requestLocationUpdates(provider, 10000, 1, this); //Obtenemos la última posición conocida dada por el proveedor Location loc = handle.getLastKnownLocation(provider); muestraPosicionActual(loc); } public void muestraPosicionActual(Location loc){ if(loc == null){//Si no se encuentra localización, se mostrará "Desconocida" longitud.setText("Desconocida"); latitud.setText("Desconocida"); }else{//Si se encuentra, se mostrará la latitud y longitud latitud.setText(String.valueOf(loc.getLatitude())); latitud.setText(String.valueOf(loc.getLongitude())); } } @Override public void onLocationChanged(Location location) { // Se ha encontrado una nueva localización muestraPosicionActual(location); } http://www.plataformateleformacion.com/seguir.php?Val=+1

5/7

10/12/2014

::: E ­ L E A R N I N G :::

@Override public void onProviderDisabled(String provider) { // Proveedor deshabilitado }

@Override public void onProviderEnabled(String provider) { // Proveedor habilitado }

@Override public void onStatusChanged(String provider, int status, Bundle extras) { //Ha cambiado el estado del proveedor }

} Mientras no obtengamos posiciones, el resultado obtenido será el siguiente:

http://www.plataformateleformacion.com/seguir.php?Val=+1

6/7

10/12/2014

::: E ­ L E A R N I N G :::

Archivos necesarios

http://www.plataformateleformacion.com/seguir.php?Val=+1

7/7

Lihat lebih banyak...

Comentários

Copyright © 2017 DADOSPDF Inc.