CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: gianfrinico con ben 1 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: carotix con ben 4 Thanks ricevuti negli ultimi sette giorni
Utente del mese: megthebest con ben 21 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 2 su 2
Discussione:

Service GPS

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Baby Droid


    Registrato dal
    May 2011
    Messaggi
    5

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Service GPS

    Salve a tutti!

    breve e concisa!
    ho un activity che mi visualizza le mappe, nelle quali ricerco le città attraverso il comando emulator control da eclipse.
    Ora, devo far diventare l'activity un service, e ad ogni cambio di posizione, segnalare all'activity questo cambiamento, mediante messaggi broadcast...come fare? io non sono per niente pratica...help me! vi posto l'activity principale che è anche l'unica activity che ho..

    x
     
    1
    package it.apogeo.android.sqlite.gps_mapview;
    2
    3
    import java.util.List;
    4
    5
    import com.google.android.maps.GeoPoint;
    6
    import com.google.android.maps.MapActivity;
    7
    import com.google.android.maps.MapController;
    8
    import com.google.android.maps.MapView;
    9
    import com.google.android.maps.MyLocationOverlay;
    10
    import com.google.android.maps.Overlay;
    11
    12
    import android.content.Context;
    13
    import android.location.Location;
    14
    import android.location.LocationListener;
    15
    import android.location.LocationManager;
    16
    import android.os.Bundle;
    17
    import android.widget.TextView;
    18
    import android.widget.Toast;
    19
    20
    public class GPSActivity extends MapActivity {
    21
        private TextView tvLatitudine;
    22
        private TextView tvLongitudine;
    23
        private TextView tvVelocita;
    24
        private TextView tvQuota;
    25
        private TextView tvAccuratezza;
    26
    27
        //Riferimento alla MapView
    28
        private MapView mapView;
    29
    30
        //Riferimento al MapController
    31
        MapController mapController;
    32
    33
        //Riferimento al MyLocationOverlay
    34
        private MyLocationOverlay myLocationOverlay;
    35
    36
        // Otteniamo il riferimento al LocationManager
    37
        LocationManager locationManager;
    38
    39
        /** Called when the activity is first created. */
    40
        @Override
    41
        public void onCreate(Bundle savedInstanceState) {
    42
            super.onCreate(savedInstanceState);
    43
            setContentView(R.layout.main);
    44
    45
            tvLatitudine = (TextView)this.findViewById(R.id.tvLatitudine);
    46
            tvLongitudine = (TextView)this.findViewById(R.id.tvLongitudine);
    47
            tvVelocita = (TextView)this.findViewById(R.id.tvVelocita);
    48
            tvQuota = (TextView)this.findViewById(R.id.tvQuota);
    49
            tvAccuratezza = (TextView)this.findViewById(R.id.tvAccuratezza);
    50
    51
            // Otteniamo il riferimento alla MapView
    52
            mapView = (MapView)findViewById(R.id.mapView);
    53
    54
            // Otteniamo il riferimento al controller
    55
            mapController = mapView.getController();
    56
    57
            // Rendiamo la mappa cliccabile e quindi ne permettiamo il pan
    58
            mapView.setClickable(true);
    59
    60
            // Utiliziamo i controlli predefiniti per la gestione delle operazioni di zoom
    61
            mapView.setBuiltInZoomControls(true);
    62
    63
            // Impostiamo la distanza dello Zoom a 12 (valori validi da 1 a 21).
    64
            mapController.setZoom(12);
    65
    66
            // Aggiungiamo l'overlay sulla mappa della nostra posizione
    67
            myLocationOverlay = new MyLocationOverlay(this, mapView);
    68
            List<Overlay> overlays = mapView.getOverlays();
    69
            overlays.add(myLocationOverlay);
    70
            myLocationOverlay.enableMyLocation();
    71
    72
            // Otteniamo il riferimento al LocationManager
    73
            locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    74
    75
            // Verifichiamo se il GPS è abilitato altrimenti avvisiamo l'utente
    76
            if(!locationManager.isProviderEnabled("gps")){
    77
                Toast.makeText(this, "GPS è attualmente disabilitato. E' possibile abilitarlo dal menu impostazioni.", Toast.LENGTH_LONG).show();
    78
            }
    79
    80
            // Registriamo il LocationListener al provider GPS
    81
            locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
    82
        }
    83
    84
        LocationListener locationListener = new LocationListener() {
    85
            @Override
    86
            public void onLocationChanged(Location location) {
    87
                // Aggiorna il marker della mappa
    88
                mapView.invalidate();
    89
    90
                // Aggiorna la location
    91
                Double geoLat = location.getLatitude()*1E6;
    92
                Double geoLng = location.getLongitude()*1E6;
    93
                GeoPoint point = new GeoPoint(geoLat.intValue(), geoLng.intValue());
    94
    95
                mapController.animateTo(point);
    96
    97
                tvLatitudine.setText(Double.toString(getRound(location.getLatitude(), 5)));
    98
                tvLongitudine.setText(Double.toString(getRound(location.getLongitude(), 5)));
    99
                tvVelocita.setText(Double.toString(getRound(location.getSpeed()*3.6, 1))+" km/h");
    100
                tvQuota.setText(Integer.toString((int)location.getAltitude())+" m");
    101
                tvAccuratezza.setText(Integer.toString((int)location.getAccuracy())+" m");
    102
            }
    103
    104
            @Override
    105
            public void onProviderDisabled(String provider) {
    106
                Toast.makeText(GPSActivity.this,
    107
                        "onProviderDisabled "+provider, Toast.LENGTH_SHORT).show();
    108
            }
    109
    110
            @Override
    111
            public void onProviderEnabled(String provider) {
    112
                Toast.makeText(GPSActivity.this,
    113
                        "onProviderEnabled "+provider, Toast.LENGTH_SHORT).show();
    114
            }
    115
    116
            @Override
    117
            public void onStatusChanged(String provider, int status,Bundle extras) {
    118
                Toast.makeText(GPSActivity.this,
    119
                        "onStatusChanged "+provider+" status: "+status, Toast.LENGTH_SHORT).show();
    120
            }
    121
        };
    122
    123
        @Override
    124
        public void onPause() {
    125
            super.onPause();
    126
            // Stoppa Listener delle posizioni
    127
            if(locationManager != null){
    128
                locationManager.removeUpdates(locationListener);
    129
                myLocationOverlay.disableMyLocation();
    130
            }
    131
        }
    132
    133
        @Override
    134
        protected void onResume() {
    135
            super.onResume();
    136
            // Registriamo il LocationListener al provider GPS
    137
            locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
    138
            myLocationOverlay.enableMyLocation();
    139
        }
    140
    141
        public static double getRound(double x, int digits){
    142
            double powerOfTen = Math.pow(10, digits);
    143
            return ((double)Math.round(x * powerOfTen) / powerOfTen);
    144
        }
    145
    146
        @Override
    147
        protected boolean isRouteDisplayed() {
    148
            // TODO Auto-generated method stub
    149
            return false;
    150
        }
    151
    }

  2.  
  3. #2
    Androidiano VIP L'avatar di casaprocida


    Registrato dal
    Feb 2011
    Località
    Roma
    Messaggi
    5,538
    Smartphone
    LG P500 / SGS / SGS+ / GNEX

    Ringraziamenti
    249
    Ringraziato 650 volte in 614 Posts
    Predefinito

    L'ultima sezione del for in basso é dedicata a chi sviluppa. Proverei li se fossi in te


    Inviato dal mio LG-P500 usando Androidiani App

    Galaxy Nexus i9250 - Rom: CM12.1 Official - SIM:TIM

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy