Tecnologia do Blogger.
RSS

[androidbrasil-dev] problemas com sinal de internet (wifi-3g)

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.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentários:

Postar um comentário