Android - Ultima localizacion

 
Vista:
sin imagen de perfil

Ultima localizacion

Publicado por karrax (9 intervenciones) el 24/07/2015 16:35:39
Hola:

Tengo un problema y es que cuando arranca la plicaccion quiero que se acerque el mapa la localizacion del usuario. Pero la cosa es que al principio no hay conexion posible de localizacion. Entonces decido utilizar getLastKnowedLocation() para consegir la ultima localizacion conocida del dispositivo asta que se encuentre algun proveedor pero no me funciona. Ademas poniendole el locationListener nose como hacer que cuendo detecte ejecute el metodo que hace que se acerque el mapa. os dejo el codigo y ya me decis:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mapa = ((SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.mapa)).getMap();
        mapa.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
        mapa.setMyLocationEnabled(true);
        mapa.getUiSettings().setZoomControlsEnabled(true);
        mapa.getUiSettings().setCompassEnabled(true);
 
 
        locaMan = (LocationManager)getSystemService(LOCATION_SERVICE);
 
        req.setAccuracy(Criteria.ACCURACY_COARSE);
        req.setAltitudeRequired(false);
        req.setCostAllowed(false);
 
       // bestProvi = locaMan.getBestProvider(req, true);
        bestProvi = locaMan.getBestProvider(req, true);
        myPosition();
 
 
 
public void myPosition() {
        if (mapa.getMyLocation() != null)
            mapa.animateCamera(CameraUpdateFactory.newLatLngZoom(
                    new LatLng( mapa.getMyLocation().getLatitude(), mapa.getMyLocation().getLongitude()), 13));
        else{
            loca = locaMan.getLastKnownLocation(bestProvi);
 
            if (loca != null)
            mapa.moveCamera(CameraUpdateFactory.newLatLngZoom(
                    new LatLng( loca.getLatitude(), loca.getLongitude()), 15));
 
        }
    }
 
public void onLocationChanged(Location location) {
        myPosition();
    }
 
    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
        myPosition();
    }
 
    @Override
    public void onProviderEnabled(String provider) {
        myPosition();
        Toast toast1 =Toast.makeText(getApplicationContext(),"Provider ON", Toast.LENGTH_SHORT);
        toast1.show();
    }
 
    @Override
    public void onProviderDisabled(String provider) {
        Toast toast1 =Toast.makeText(getApplicationContext(),"Provider OFF", Toast.LENGTH_SHORT);
        toast1.show();
    }
 
    @Override
    protected void onResume() {
        super.onResume();
        // Activamos notificaciones de localización
        locaMan.requestLocationUpdates(bestProvi, 10000, 400, this);
    }
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder