Sto sviluppando un'app utilizzando Fused Location Provider. Ho un dubbio. Per ottenere la posizione a intervalli regolari utilizza requestLocationUpdates(). Ma da quale fonte si ottiene la posizione sia da Wi-Fi o GPS o rete. Nella mia app, ottiene la posizione a intervalli regolari solo quando Wi-Fi è attivo. Quando il Wi-Fi è in stato OFF, non è possibile ottenere la posizione (si suppone che ottenga la posizione da un'altra fonte o GPS o Rete. Ma non ottiene mai la posizione, oppure devo scrivere ascoltatori per GPS e Rete). Non so qual è il problema. Qualcuno può aiutarmi.Fornitore di posizione fuso in Android
E, se funziona solo quando tutti i provider (Wifi, GPS, Rete) sono disponibili o altro.
public void checkPlay(){
int resp = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
if (resp == ConnectionResult.SUCCESS) {
locationClient = new LocationClient(this, this, this);
locationClient.connect();
} else {
Toast.makeText(this, "Google Play Service Error " + resp,
Toast.LENGTH_LONG).show();
}
}
public void onConnected(Bundle arg0) {
// TODO Auto-generated method stub
if (locationClient != null && locationClient.isConnected()) {
locationRequest = LocationRequest.create();
locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
locationRequest.setInterval(100);
locationClient.requestLocationUpdates(locationRequest, this);
}
}
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
try {
if (location != null) {
lat = location.getLatitude();
long = location.getLongitude();
}
} catch (Exception e) {
Log.d(Fots.TAG,
"GpsTrackService.mGpsLocationListener.onLocationChanged", e);
}
}
si riferisce a questo utile http://wptrafficanalyzer.in/blog/gps-and-google-map-in-android-applications-series/ – Aravin
come si esegue il test per gli aggiornamenti di posizione? –
twntee..Io scrivo suLocationChanged() in un servizio. Quando eseguo l'accesso all'app, il servizio verrà avviato ed eseguirà il servizio ogni 1 minuto e riceverà l'aggiornamento della posizione per ogni 5 secondi utilizzando "locationRequest.setPriority (LocationRequest.PRIORITY_HIGH_ACCURACY);" – Raja45