Provedor de localização fundido no Android
Estou desenvolvendo um aplicativo usando o provedor de local fundido. Tenho uma dúvida. Para obter a localização em intervalos regulares, usa requestLocationUpdates (). Mas a partir de qual fonte é obter o local de Wi-Fi ou GPS ou rede. No meu aplicativo, ele obtém a localização em intervalos regulares somente quando o WiFi está ativado. Quando o Wi-Fi está no estado DESLIGADO, ele não consegue a localização (supõe-se que ele obtenha a localização de alguma outra fonte, seja GPS ou Rede. Mas nunca obtém localização. Ou eu tenho que escrever ouvintes para GPS e Rede). Eu não sei qual é o problema. Alguém pode me ajudar.
E, se funciona apenas quando todos os provedores (Wi-Fi, GPS, Rede) disponíveis ou mais.
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);
}
}