J'essaie de développer une solution pour obtenir ma position actuelle en utilisant le GPS d'Android. Toutefois, la recherche est limitée à un délai d'expiration et, lorsque les emplacements de recherche commencent, une boîte de dialogue permet à l'utilisateur d'annuler la recherche.Comment obtenir l'emplacement actuel via Android GPS en utilisant Runnables et en recherchant TimeOut?
Pour ce faire, je pense à utiliser un runnable. Après il y a le code responsable de la minuterie (je l'utilise dans une machine d'état avec interrupteur).
runOnUiThread(new Runnable() {
@Override
public void run() {
progressDialog = new ProgressDialog(AddPandlet.this);
progressDialog.setButton(DialogInterface.BUTTON_NEUTRAL, getString(R.string.addpandlet_cancelsearch),
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//CANCEL OBTAINING GPS
return;
}
});
progressDialog.show();
scanLocation();
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
progressDialog.hide();
}
});
status = Status.FINISH;
updateStateMachine();
}
}, SCAN_PERIOD_GPS);
Sur le LocationListener que je fais ceci:
LocationListener locationListenerNetwork = new LocationListener() {
public void onLocationChanged(Location location) {
locationManager.removeUpdates(this);
locationManager.removeUpdates(locationListenerGps);
longitude = "Longitude: " + location.getLongitude();
latitude = "Latitude: " + location.getLatitude();
}
public void onProviderDisabled(String provider) {}
public void onProviderEnabled(String provider) {}
public void onStatusChanged(String provider, int status, Bundle extras) {}
};
D'ailleurs, je ne peux pas obtenir les coordonnées GPS, car le GPS est toujours à l'écoute, et ne pas arrêté lorsque les extrémités de la minuterie.
Quelqu'un peut-il m'aider? Merci.