Android propociona una serie de clases incluidas dentro del paquete android.location y el la librería externa de Google Maps para poder realizar aplicaciones y servicios basados en localización y mapas.
Servicios de localización
El componente principal del framework de localización en el servicio del sistema LocationManager, proprociona un API para deterniminar la localización en dispositivos que lo permitan.
Al tratarse de un servicio, no se instancia la clase directamente, simplemente se realiza una llamada al sistema mediante el método getSystemService(Context.LOCATION_SERVICE) que nos proporcionará:
– Consultar la lista de LocationProviders conocidos.
– Registrar actualizaciones en la localización actual mediante el LocationProvider.
– Registrara un Intent que puede ser disparado cuando nos acercamos a una localización especificada.
Durante el desarrollo podemos, al no disponer de red GPS, la podemos emular através de un proveedor mock de localización.
GoogleMaps En el paquete com.google.android.maps proprociona funciones para descargar, mostrar y cachear mapas, así como una serie de vistas y controles. Existe una clase propia del API que hereda de ViewGroup y es la más importante y sobre la que se centran las distintas acciones com.google.android.maps.MapView.
Un MapView muestra un mapa obtenido del servicio Google Maps.
Cuando se interactúa con la vista se pueden realizar acciones como el zoom y provee de elementos de UI necesarios para que el usuario pueda controlar el mapa con libertad.
Existen métodos propios de MapView que permiten trabajar através de programación
En general, la clase MapView provee un wrapper alrededor del API de Google Maps que proporciona a nuestras aplicaciones manipular la información utilizando sus métodos y trabajar con los mapas como si fuese una View cualquiera.
Sensores
Android permite acceder a los sensores internos del dispositivo a través de las clases Sensor, SensorEvent y SensorManager, y de la interface SensorEventListener, del paquete android.hardware. La clase Sensor acepta ocho tipos de sensores que varían en función del aparato utilizado.
Listar los sensores del dispositivo
Acceso a los datos del sensor
Sensor acelerometerSensor =listSensors.get(0);
mSensorManger.registerListener(mTop,acelerometerSensor, Sensor.SENSOR_DELAY_IU);
Para tener acceso a los datos del sensor debemos indicárselo al SensorManager con el método registerListener:
Es necesario registrar cada tipo de sensor por separado para poder obtener información de todos ellos. El método registerListener toma como primer parámetro la instancia de la clase que implementa el SensorEventListener, y que veremos a continuación. El tercer parámetro acepta cuatro posibles valores, que indican al sistema con qué frecuencia nos gustaría recibir actualizaciones del sensor. Esta indicación sirve para que el sistema estime cuánta atención necesitan los sensores, pero no garantiza una frecuencia concreta.
Cuando el evento se dispara en el método onSensorChanged comprobamos qué sensor lo ha causado y leemos los datos. Los posibles valores devueltos se indican en la documentación de la clase SensorEvent.
La clase SensorManager tiene además tres métodos (getInclination, getOrientation y getRotationMatrix), usados para calcular transformaciones de coordenadas.
buen día.
como me pueden proporcionar un aparato para detectar la localización de un automóvil a todos lugares donde valla. y poder detectarlo a una cierta distancia.
saludos