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

Android Discussion :

[Podomètre] Demande de tutoriel


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Caranille
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2013
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2013
    Messages : 117
    Par défaut [Podomètre] Demande de tutoriel
    Bonjour tous le monde,

    Je suis à la recherche depuis un bon bout de temps d'un tutoriel simple pour la création d'une application qui compte le nombre de pas car tous les tutoriel que j'ai trouvé sont soit pas à jour (et donc plus compatible) soit ne fonctionne pas avec mon téléphone... Car un coups il y a le gyroscope un coup l'accelerometre... je suis un peu perdu :p

    Alors que de faire la même appli avec un suivit par GPS c'est limite plus simple :p

    Merci de votre aide

    Cordialement,

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Depuis android 4.4 tu as 2 sensor dédié à cet effet :

    https://developer.android.com/about/...html#UserInput

    TYPE_STEP_DETECTOR va te retourner 1 et un timestamp à chaque pas alors que TYPE_STEP_COUNTER va retourner un total.

    J'imagine que ces sensor on l'avantage d'aller chercher directement l'info sur les podomètres intégrés dans les appareils qui en dispose (bien plus précis et moins energivore).

    Exemple rapide :
    Récupérer le sensor
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
    stepDetectorSensor = sensorManager.getDefaultSensor(Sensor.TYPE_STEP_DETECTOR);
    Ecrire un listener
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public void onSensorChanged(SensorEvent event) {
         Sensor sensor = event.sensor;
         float[] values = event.values;
         int value = -1;
     
         if (values.length > 0) {
            value = (int) values[0];
         }
     
         if (sensor.getType() == Sensor.TYPE_STEP_DETECTOR) {
             Log.d("STEP","Value = "+value);
         }
     }
    S'abonnner au listener (onResume par exemple)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sensorManager.registerListener(this, stepDetectorSensor,SensorManager.SENSOR_DELAY_FASTEST);
    Se désabonner (onStop par exemple)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sensorManager.unregisterListener(this, stepDetectorSensor);
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé Avatar de Caranille
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2013
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2013
    Messages : 117
    Par défaut
    Bonjour,

    Je te remercie de ton aide, je teste ça ce soir et je tiens au courant en mettant le sujet en résolu si il l'est

    Après est t'il possible que certain appareil récent ne support pas ses API ? Car j'ai un Wiko Ufeel (Celui à 200€) avec Android 6

    Cordialement,

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    A partir du moment où tu as android 4.4 l'api est supportée.

    En revanche ce qui est possible c'est que l'appareil ne dispose pas de podomètre et donc les pas sont calculé avec les capteurs dont dispose le téléphone ce qui peut engendrer une incertitude plus ou moins importante et consommer plus ou moins de batterie.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre confirmé Avatar de Caranille
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2013
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2013
    Messages : 117
    Par défaut
    Bonsoir,

    Après avoir essayé votre code en l'adaptant le mieux possible (avec plusieurs autre tutoriel) l'application se lance mais rien ne se passe que ce soit dans le LOG du terminal ou dans le TextView

    Voici le code complet:

    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
    package com.caranille.myownpet;
     
    import android.content.Context;
    import android.hardware.Sensor;
    import android.hardware.SensorEvent;
    import android.hardware.SensorEventListener;
    import android.hardware.SensorManager;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.util.Log;
    import android.widget.TextView;
     
    import android.app.Activity;
    import android.content.Context;
    import android.hardware.*;
    import android.os.Bundle;
    import android.widget.TextView;
    import android.widget.Toast;
     
    public class MainActivity extends Activity implements SensorEventListener {
     
        private SensorManager sensorManager;
        private TextView count;
        boolean activityRunning;
     
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            count = (TextView) findViewById(R.id.stepValue);
     
            sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
        }
     
        @Override
        protected void onResume() {
            super.onResume();
            activityRunning = true;
            Sensor countSensor = sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER);
            if (countSensor != null) {
                sensorManager.registerListener(this, countSensor, SensorManager.SENSOR_DELAY_UI);
            } else {
                Toast.makeText(this, "Count sensor not available!", Toast.LENGTH_LONG).show();
            }
     
        }
     
        @Override
        protected void onPause() {
            super.onPause();
            activityRunning = false;
        }
     
        @Override
        public void onSensorChanged(SensorEvent event) {
            if (activityRunning) {
                count.setText(String.valueOf(event.values[0]));
            }
     
        }
     
        @Override
        public void onAccuracyChanged(Sensor sensor, int accuracy) {
        }
    }
    Et ça me met Sensor not available...

    J'ai donc essayé ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    smm = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
            lv = (ListView) findViewById (R.id.listView1);
            sensor = smm.getSensorList(Sensor.TYPE_ALL);
            lv.setAdapter(new ArrayAdapter<Sensor>(this, android.R.layout.simple_list_item_1,  sensor));
    Et je confirme je n'ai que les sensors suivant:
    accelerometer
    proximity
    light
    gyroscope
    ortientation Sensor
    Magnetometer
    Rotation Vector Sensor
    Gravity Sensor
    Linear Acceleration Sensor

    Alors comment puis-je faire ? Car j'ai acheté ce téléphone pour avoir exprès android 6... snif

    Je crois que je vais jeter l'éponge car tous les tutoriel utilise ce type de code mais si mon téléphone la pas je suis bien embêté

    Cordialement,

  6. #6
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    As tu essayé avec le STEP_DETECTOR ?

    En effet après lecture de la documentation du step counter :
    This sensor is implemented in hardware and is expected to be low power
    https://developer.android.com/refere...E_STEP_COUNTER
    ce qui voudrait dire que pour le step counter il faut un capteur dédié. il n'ya pas de mention équivalente pour le STEP_DETECTOR.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Demande de tutoriel
    Par Bangura dans le forum Diagrammes de Classes
    Réponses: 1
    Dernier message: 10/02/2011, 10h38
  2. demande de tutoriel
    Par deubelte dans le forum C++
    Réponses: 5
    Dernier message: 27/12/2006, 02h56
  3. Développement 2D, 3D et jeux : demande de tutoriels
    Par Laurent Gomila dans le forum Evolutions du club
    Réponses: 2
    Dernier message: 23/01/2006, 18h16

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