Dispositivos embebidos
-
Upload
david-vanegas -
Category
Documents
-
view
245 -
download
1
description
Transcript of Dispositivos embebidos
Instructor: Rodrigo Iván Fonseca Daza
Le permite al dispositivo conocer su geolocalización
En Android, el GPS funciona en conjunto con la red 3G/4G y/o WI-FI (si está disponible) para aumentar la precisión de la localización
Deben especificarse permisos especiales en el «manifest» para tener acceso al GPS
<uses-permission
android:name="android.permission.ACCESS_COARSE_LOCATION"
/>
<uses-permission
android:name="android.permission.ACCESS_FINE_LOCATION" />
Clase del SDK de Android que sirve para administrar los mecanismos de localización del dispositivo.
locationManager = (LocationManager)
getSystemService(Context.LOCATION_SERVICE);
Una clase que indica los criterios para seleccionar un proveedor de localización (en cuanto a precisión y consumo de energía)
Criteria criteria = new Criteria();
provider = locationManager.getBestProvider(criteria, false);
Representación completa de una localización geográfica
Location location =
locationManager.getLastKnownLocation
(provider);
if (location != null) {
onLocationChanged(location);
}
Para poder usar el servicio de localización, el Activity debe implementar los métodos de LocationListener: ◦ onLocationChanged()
◦ onStatusChanged()
◦ onProviderEnabled()
◦ onProviderDisabled()
@Override
public void onLocationChanged(Location location) {
double lat = location.getLatitude();
double lng = location.getLongitude();
if (map != null) {
if(locationMarker == null){
locationMarker = map.addMarker(new
MarkerOptions()
.position(new LatLng(lat, lng)));
}else{
locationMarker.setPosition(new
LatLng(lat, lng));
}
}
}
@Override
protected void onResume() {
super.onResume();
locationManager.requestLocationUpdates(provider, 400,
Criteria.ACCURACY_FINE, this);
}
@Override
protected void onPause() {
super.onPause();
locationManager.removeUpdates(this);
}
Se puede tener acceso a la cámara, usando una aplicación preinstalada en cada dispositivo (recomendado), o creando una aplicación propia
En nuestro caso, usaremos la aplicación preinstalada
public void abrirCamara(View v) {
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File imagesFolder = new File(Environment.getExternalStorageDirectory(),
"guia_turistica");
imagesFolder.mkdirs();
File image = new File(imagesFolder,"foto.jpg");
Uri uriSavedImage = Uri.fromFile(image);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage);
startActivityForResult(cameraIntent,1);
}
@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent data) {
if (requestCode == 1 && resultCode == RESULT_OK) {
Bitmap bMap = BitmapFactory.decodeFile(
Environment.getExternalStorageDirectory()+"/guia_turistica
/"+"foto.jpg");
ivPrueba.setImageBitmap(bMap);
}
}