Pessoal,
-- Estou fazendo um aplicativo que ele faz uma sincronização com o banco de dados. Porém, caso ele não tenha internet, o aplicativo fica guardando localmente, até que a internet fique ativa novamente.
O problema, é que quando eu ativo o wifi(ou 3g) ele não está sincronizando.
Alguem poderia me ajudar?
Alguem teria um exemplo mais prático e simples?
Minha classe LocationService.
Obrigada
public class LocationService extends Service implements LocationListener{
private LocationManager locationManager;
private Timer trackTimer;
private Context context;
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
public LocationService(Context context){
this.context = context;
Log.i(Constants.TAG, "Iniciar GPS");
locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
if (ContextCompat.checkSelfPermission(context, android.Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED
|| ContextCompat.checkSelfPermission(context, android.Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
if (Constants.CHECK_GPS) {
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, Constants.TRACK_TIME, Constants.LOCATION_ACCURACY, this);
Controller.getInstance().setLocation(locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER));
} else {
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, Constants.TRACK_TIME, Constants.LOCATION_ACCURACY, this);
Controller.getInstance().setLocation(locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER));
}
}
trackTimer = new Timer();
trackTimer.schedule(new RotasAparelhoTask(this), 0, Constants.TRACK_TIME);
trackTimer.schedule(new RegistroColetorTask(this), 0, Constants.TEMPO_REGISTRO_COLETOR);
trackTimer.schedule(new InternetAparelhoTask(this), 0, Constants.TEMPO_REGISTRO_COLETOR);
}
@Override
public void onLocationChanged(Location location) {
Log.i(Constants.TAG, "lat: " + location.getLatitude() + " lng: " + location.getLongitude());
Controller.getInstance().setLocation(location);
}
@Override
public void onDestroy() {
super.onDestroy();
if (locationManager != null) {
if (ContextCompat.checkSelfPermission(context,Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED
|| ContextCompat.checkSelfPermission(context,Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
locationManager.removeUpdates(this);
trackTimer.cancel();
Log.i(Constants.TAG, "LocationService . Destroyed");
}
}
}
public void removeUpdates(){
if (ContextCompat.checkSelfPermission(context,Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED
|| ContextCompat.checkSelfPermission(context,Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
locationManager.removeUpdates(this);
}
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
public long getTime(Context context){
long time = 0;
try {
if (checkGPSState(context)) {
time = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER).getTime();
} else if (ContextCompat.checkSelfPermission(context, android.Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED
|| ContextCompat.checkSelfPermission(context, android.Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
time = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER).getTime();
}
}catch(Exception e){
time = 0;
}
return time;
}
public boolean checkGPSState(Context context) {
return locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
}
}
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.






0 comentários:
Postar um comentário