Déterminer la vitesse d'un véhicule en utilisant le GPS dans Android
Je voudrais savoir comment obtenir la vitesse d'un véhicule à l'aide de votre téléphone tout en restant assis dans le véhicule à l'aide du gps. J'ai lu que l'accéléromètre n'est pas très précis. Une autre chose est; GPS accessible tout en restant assis dans un véhicule. N'est-ce pas avoir le même effet que lorsque vous êtes dans un bâtiment?
Voici un code que j'ai essayé, mais j'ai utilisé le FOURNISSEUR de RÉSEAU à la place.Je vous en seront reconnaissants de l'aide. Merci...
package com.example.speedtest;
import android.app.Activity;
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.widget.Toast;
public class MainActivity extends Activity {
LocationManager locManager;
LocationListener li;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
locManager=(LocationManager)getSystemService(Context.LOCATION_SERVICE);
li=new speed();
locManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, li);
}
class speed implements LocationListener{
@Override
public void onLocationChanged(Location loc) {
Float thespeed=loc.getSpeed();
Toast.makeText(MainActivity.this,String.valueOf(thespeed), Toast.LENGTH_LONG).show();
}
@Override
public void onProviderDisabled(String arg0) {}
@Override
public void onProviderEnabled(String arg0) {}
@Override
public void onStatusChanged(String arg0, int arg1, Bundle arg2) {}
}
}
source d'informationauteur John Kulova
Vous devez vous connecter pour publier un commentaire.
GPS fonctionne très bien dans un véhicule. Le
NETWORK_PROVIDER
paramètre peut ne pas être suffisamment précis pour obtenir une vitesse fiable, et les endroits de laNETWORK_PROVIDER
peut même pas contenir une vitesse. Vous pouvez le vérifier aveclocation.hasSpeed()
(location.getSpeed()
retourne toujours 0).Si vous trouvez que
location.getSpeed()
n'est pas assez précis, ou il est instable (c'est à dire fluctue considérablement) ensuite, vous pouvez calculer la vitesse vous-même en prenant de la distance moyenne entre quelques localisations GPS et diviser par le temps écoulé.ajouter implémente: LocationListener à côté de l'Activité
LocationManager.GPS_PROVIDER, 0, 0, Le premier zéro signifie minTime et la seconde pour minDistance dans laquelle vous mettez à jour vos valeurs. Zéro signifie fondamentalement, les mises à jour instantanée qui peut être mauvais pour la vie de la batterie, de sorte que vous pouvez ajuster.
N'oubliez pas les Autorisations
Nous pouvons utiliser la localisation.getSpeed();