Je suis sur le point de construire une application sur Android qui servira de carte d'accès pour les employés sur la route. Au début d'un travail, l'utilisateur cliquera sur un bouton qui enregistrera l'emplacement GPS et l'heure actuelle (vérifiant ainsi où il se trouve à un moment donné) et à la fin du travail qu'il a enregistré. l'heure et l'emplacement GPS. Je pense que ce sera assez facile, sauf que je ne trouve pas un moyen de tirer les données de localisation actuelles. Le plus proche que je peux trouver est onLocationChanged
ce qui implique que je ne peux pas obtenir une lecture GPS stationnaire. Je sais que cela doit être possible, mais je ne trouve pas d'exemple concret de la façon dont cela serait réalisé.Comment puis-je obtenir l'emplacement GPS actuel?
Répondre
Après un peu de recherche ce que je suis venu avec:
public class UseGps extends Activity
{
Button gps_button;
TextView gps_text;
LocationManager mlocManager;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
gps_button = (Button) findViewById(R.id.GPSButton);
gps_text = (TextView) findViewById(R.id.GPSText);
gps_button.setOnClickListener(new OnClickListener() {
public void onClick(View viewParam) {
gps_text.append("\n\nSearching for current location. Please hold...");
gps_button.setEnabled(false);
mlocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
LocationListener mlocListener = new MyLocationListener();
mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mlocListener);
}
});
}
/* Class My Location Listener */
public class MyLocationListener implements LocationListener
{
@Override
public void onLocationChanged(Location loc)
{
double lon = loc.getLatitude();
double lat = loc.getLongitude();
gps_text.append("\nLongitude: "+lon+" - Latitude: "+lat);
UseGps.this.mlocManager.removeUpdates(this);
gps_button.setEnabled(true);
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
}
}
Ceci met en place une activité avec un bouton et textview. Définissez un écouteur sur le bouton qui lance le gestionnaire de position.
J'ai mis en place une classe, MyLocationListener
, qui met en œuvre LocationListener
, puis-je remplacer la méthode onLocationChanged()
, dire au fond, ce que le premier emplacement, il obtient l'ajoute au textview puis il supprime le gestionnaire de l'emplacement.
Merci à ceux qui ont aidé et j'espère que cela sera utile à quelqu'un d'autre.
Vous devriez essayer de android.location.LocationManager.getLastKnownLocation
Et vérifier le temps de l'emplacement de retour en utilisant Location.getTime(utc time)
.
Demander des mises à jour de position et créer un LocationListener (voir LocationManager.requestLocationUpdates
). Vous recevrez des mises à jour régulières avec des informations sur l'exactitude. Jusqu'à ce que vous obteniez votre première mise à jour, vous pouvez (comme indiqué) utiliser LocationManager.getLastLocation()
et vérifier son horodatage et sa précision. Avertissement: certains scannages de périphériques prennent une éternité pour vous permettre une lecture précise, et ce, de manière totalement aléatoire.
ok, donc je quelque chose comme ça alors .. cliquez sur le bouton de démarrage et et obtenir un horodatage, et fondamentalement continuer à interroger la dernière localisation jusqu'à ce que je reçois un emplacement avec un horodatage supérieur à mon horodateur de départ .. Je dois dire, Je ne peux pas croire qu'il n'y a pas un moyen de faire un contrôle sur place. L'appareil que j'utilise est assez rapide pour obtenir ma position lorsque j'utilise google maps ou le navigateur ... –
Ne pas interroger lastKnown! Regardez la dernière fois connue et demandez les mises à jour comme indiqué ci-dessus. Si cela change, vous serez averti. Si ça ne change pas, lastKnown ne changera pas non plus! – EboMike
Ok, je ne veux vraiment pas paraître paresseux, mais j'apprends mieux par l'exemple, donc sur cette note est-il possible que vous (ou quelqu'un d'autre) pouvez poster un exemple de code? –
- 1. obtenir l'emplacement actuel (GPS/wifi)
- 2. l'obtention de l'emplacement actuel dans le GPS?
- 3. Comment obtenir l'emplacement actuel de l'iPhone à l'aide du code?
- 4. Comment obtenir le ProcessID actuel?
- 5. Android - Obtenir de manière fiable l'emplacement actuel
- 6. obtenir div emplacement actuel
- 7. Obtenir l'emplacement GPS sur BlackBerry
- 8. Obtenir l'emplacement actuel
- 9. Obtenir l'emplacement actuel en utilisant le Wi-Fi?
- 10. wordpress obtenir l'utilisateur actuel
- 11. Obtenir l'horodatage ISO8601 actuel
- 12. Obtenir l'ordinateur actuel datetimeformat
- 13. red5: comment puis-je obtenir IConnection actuel?
- 14. Comment obtenir l'URL de l'onglet firefox actuel
- 15. Comment obtenir le bitmap actuel d'une toile?
- 16. Comment obtenir le nom d'utilisateur Joomla actuel?
- 17. Comment obtenir le nom du propriétaire actuel?
- 18. Comment obtenir Html.DropdownFor() pour sélectionner l'élément actuel?
- 19. comment obtenir datetime actuel dans SQL?
- 20. Comment obtenir l'objet actuel de TreeView
- 21. Comment obtenir l'itinéraire actuel dans HtmlHelper?
- 22. Comment Google Chrome connaît-il mon emplacement GPS actuel et comment l'utiliser dans mon code?
- 23. Service Web pour obtenir les coordonnées GPS
- 24. Obtenir les coordonnées GPS Windows Phone 7
- 25. Obtenir les coordonnées GPS de Samsung Intrepid
- 26. Android: Comment obtenir l'emplacement le plus précis du GPS
- 27. Comment obtenir l'heure locale selon les coordonnées GPS?
- 28. Obtenir l'emplacement actuel d'un JFrame
- 29. Comment obtenir le GPS Localisation avec un iPod Touch (4e génération)
- 30. android comment arrêter gps
ok, et excusez mon ignorance, mais lastKnownLocation dosnt impliquent mon emplacement actuel en ce moment .. Je veux l'application pour aller chercher mon emplacement dès que j'appuie sur le bouton, n'est-il pas possible que le dernier lieu connu est arrivé un il y a une demi-heure 2 miles de retour sur la route? –
puis onLocationChanged est le meilleur moyen d'obtenir la position la plus à jour. – david
Mais c'est mon point, que faire si je suis stationnaire et que je veux obtenir la position que je suis actuellement? Y a-t-il un moyen d'initialiser ma position, disons 0 0, qui déclencherait alors un changement de lieu? –