IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Android Discussion :

Pas d'actualisation du GPS


Sujet :

API standards et tierces Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Pas d'actualisation du GPS
    Bonjour à tous,

    Je me permets de copier le thread que j'ai posté sur un autre site, étant donné que je reçois pas de réponse (on est en week-end, je le conçois).

    Voici donc le problème :


    Je suis actuellement en train de développer une petite application (usage privé, ne vous en faites pas une merde pareille ne verra pas le jour sur le Market lol), qui me permet de récupérer les valeurs des différents capteurs qui m'intéressent (Accéléromètre, boussole, proximité et GPS). Cependant, j'ai un petit problème avec le GPS dont la valeur ne s'actualise pas sauf quand l'orientation de l'écran change [dans le sens où l'on passe de portrait à paysage et vice-versa] (donc j'imagine que cela relance l'activité, enfin je sais pas, j'imagine que y'a un truc qui change). Voici mon programme:



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
     
     
    package com.pIndus.sensors;
     
    import android.app.Activity;
    import android.content.Context;
    import android.hardware.Sensor;
    import android.hardware.SensorEvent;
    import android.hardware.SensorEventListener;
    import android.hardware.SensorManager;
    import android.location.Location;
    import android.location.LocationListener;
    import android.location.LocationManager;
    import android.os.Bundle;
    import android.widget.TextView;
     
    public class Sensors extends Activity implements SensorEventListener{
     
            SensorManager sm;
            LocationManager lm;
            LocationListener ls;
        @Override
        public void onCreate(Bundle savedInstanceState) 
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
     
            sm = (SensorManager) getSystemService(SENSOR_SERVICE);
            lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
     
            boolean accelSupported = sm.registerListener(this, sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),SensorManager.SENSOR_DELAY_FASTEST);
     
            if(!accelSupported)
            {
                    sm.unregisterListener(this, sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER));
                    ((TextView)findViewById(R.id.acc)).setText("Accéléromètre non disponible");
            }
     
            boolean compassSupported = sm.registerListener(this, sm.getDefaultSensor(Sensor.TYPE_ORIENTATION),SensorManager.SENSOR_DELAY_FASTEST);
     
            if(!compassSupported)
            {
                    sm.unregisterListener(this, sm.getDefaultSensor(Sensor.TYPE_ORIENTATION));
                    ((TextView)findViewById(R.id.compass)).setText("Boussole non disponible");
            }
     
            boolean proxySupported = sm.registerListener(this, sm.getDefaultSensor(Sensor.TYPE_PROXIMITY),SensorManager.SENSOR_DELAY_FASTEST);
     
            if(!proxySupported)
            {
                    sm.unregisterListener(this, sm.getDefaultSensor(Sensor.TYPE_PROXIMITY));
                    ((TextView)findViewById(R.id.proxy)).setText("Capteur de proximité non disponible");
            }
     
            ls = new MyLocationListener();
     
     
            lm.requestLocationUpdates( LocationManager.NETWORK_PROVIDER, 0, 0, ls);
     
        }
     
        @Override
        public void onStop()
        {
            super.onStop();
            lm.removeUpdates(ls);
            sm.unregisterListener(this);
        }
     
        @Override
        public void onPause()
        {
            super.onStop();
            lm.removeUpdates(ls);
            sm.unregisterListener(this);
        }
     
     
     
            @Override
            public void onAccuracyChanged(Sensor sensor, int accuracy) 
            {
                    // TODO Auto-generated method stub
     
            }
     
            @Override
            public void onSensorChanged(SensorEvent event) 
            {
                    switch(event.sensor.getType())
                    {
                            case Sensor.TYPE_ACCELEROMETER:
                                    onAccelChanged(event);
                            break;
     
                            case Sensor.TYPE_ORIENTATION:
                                    onCompassChanged(event);
                            break;
     
                            case Sensor.TYPE_PROXIMITY:
                                    onProxyChanged(event);
                            break;  
                    }
     
            }
     
            public void onAccelChanged(SensorEvent event)
            {
                    float aX,aY,aZ;
     
                    aX = event.values[0];
                    aY = event.values[1];
                    aZ = event.values[2];
     
                ((TextView)findViewById(R.id.axeX)).setText("Axe X : " + aX);
                    ((TextView)findViewById(R.id.axeY)).setText("Axe Y : " + aY);
                    ((TextView)findViewById(R.id.axeZ)).setText("Axe Z : " + aZ);
     
            }
     
            public void onCompassChanged(SensorEvent event)
            {
                    float azimuth,pitch,roll;
     
                    azimuth = event.values[0];
                    pitch = event.values[1];
                    roll = event.values[2];
     
                    ((TextView)findViewById(R.id.azimuth)).setText("Azimuth : " + azimuth);
                    ((TextView)findViewById(R.id.pitch)).setText("Pitch : " + pitch);
                    ((TextView)findViewById(R.id.roll)).setText("Roll : " + roll);
            }
     
            public void onProxyChanged(SensorEvent event)
            {
                    float x;
     
                    x = event.values[0];
     
                    ((TextView)findViewById(R.id.prox)).setText("Proximité : " + x);
     
            }
     
            public class MyLocationListener implements LocationListener
     
            {
     
                    @Override
                    public void onLocationChanged(Location location) {
                            double longitude, lattitude;
     
                            longitude = location.getLongitude();
                            lattitude = location.getLatitude();
     
                            ((TextView)findViewById(R.id.longi)).setText("Longitude : " + longitude);
                            ((TextView)findViewById(R.id.latti)).setText("Lattitude : " + lattitude);
     
     
     
                    }
     
                    @Override
                    public void onProviderDisabled(String provider) {
     
                            ((TextView)findViewById(R.id.warnGPS)).setText("GPS Desactivé");
     
                    }
     
                    @Override
                    public void onProviderEnabled(String provider) {
                            ((TextView)findViewById(R.id.warnGPS)).setText("GPS Activé");
     
                    }
     
                    @Override
                    public void onStatusChanged(String provider, int status, Bundle extras) {
                            // TODO Auto-generated method stub
     
                    }
     
            }
     
    }

    Auriez-vous une idée pour expliquer le fait que mon GPS ne s'actualise pas quand je change de position ? :/ Merci d'avance !
    Dernière modification par Domi2 ; 02/09/2011 à 11h53.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    322
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 322
    Par défaut
    Bonjour,
    Quand tu changes l'orientation l'activité redémarre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    @Override
        public void onStop()
        {
            super.onStop();
            lm.removeUpdates(ls);
            sm.unregisterListener(this);
        }
     
        @Override
        public void onPause()
        {
            super.onStop();
            lm.removeUpdates(ls);
            sm.unregisterListener(this);
        }
    Fais attention tu as mis super.onStop() dans ton opPause();
    Rajoutes des log dans ces deux fonctions pour savoir quand tu y passes. Tu rentres peut être dans la fonction onPause ce qui a pour effet d'arrêter les updates de ta localisation

Discussions similaires

  1. [XL-2000] pas d'actualisation d'un TCD en VBA
    Par jps67370 dans le forum Excel
    Réponses: 1
    Dernier message: 13/03/2013, 10h07
  2. [2000] pas d'actualisation d'un tcd suite a changement valeur du filtre
    Par jps67370 dans le forum Microsoft Office
    Réponses: 0
    Dernier message: 13/03/2013, 08h38
  3. Pas d'accès au GPS MC65 avec windev 17
    Par Odm973 dans le forum Windev Mobile
    Réponses: 4
    Dernier message: 12/11/2012, 23h41
  4. [AJAX] Listes liées - Pas d'actualisation après choix
    Par Jonathan_2012 dans le forum AJAX
    Réponses: 7
    Dernier message: 14/06/2012, 12h22
  5. Réponses: 9
    Dernier message: 20/06/2006, 18h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo