Autore Topic: Verifica connessione assente  (Letto 644 volte)

Offline moskino11

  • Utente normale
  • ***
  • Post: 179
  • Respect: 0
    • Mostra profilo
Verifica connessione assente
« il: 20 Maggio 2015, 13:02:39 CEST »
0
Salve amici, vi volevo chiedere delle cose relative alla connessione .
Siccome la mia app funziona servendosi della rete wifi e rete mobile, volevo creare un'activity che gestisce il caso in cui la connessione è assente.
Il codice utilizzato per fare questo è il seguente:

Codice (Java): [Seleziona]
 ConnectivityManager connessione = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        final NetworkInfo networkInfo = connessione.getActiveNetworkInfo();

        if (networkInfo != null && networkInfo.isConnected())            
        {    
              // fai delle operazioni  
        }
        else
        {
              // vai all'activity nella quale mostri un layout all'utente informandolo che manca la connessione
          }

 

La mia domanda è la seguente: siccome la mia app ha come prima activity uno splashScreen, volevo sapere se tale verifica può essere fatta in tale activity.
Grazie in anticipo per la risposta

Offline LinkOut

  • Utente normale
  • ***
  • Post: 272
  • Respect: +38
    • Mostra profilo
  • Dispositivo Android:
    Xiaomi Mi5
Re:Verifica connessione assente
« Risposta #1 il: 20 Maggio 2015, 13:29:33 CEST »
+1
Io avrei fatto così:

Codice (Java): [Seleziona]
public class ConnectionDetector {
   
        private Context _context;

    public ConnectionDetector(Context context){
        this._context = context;
    }

    public boolean isInternetConnected(){
        ConnectivityManager connectivity = (ConnectivityManager) _context.getSystemService(Context.CONNECTIVITY_SERVICE);
        if (connectivity != null){
            NetworkInfo[] info = connectivity.getAllNetworkInfo();
            if (info != null)
                for (int i =0; i< info.length; i++)
                    if (info[i].getState() == NetworkInfo.State.CONNECTED)
                    {
                        return true;
                    }
        }
        return false;
    }
}

Poi ovunque avrei bisogno di verificare la connessione farei:

Codice (Java): [Seleziona]
ConnectionDetector cd = new ConnectionDetector(this);
if(!cd.isInternetConnected()){
//Non c'è Internet
}else {
//C'è internet
}

La verifica della connessione è a tua indiscrezione, in realtà la devi fare quando hai bisogno di farlo, puoi farlo anche nella SplashScreen.


Saluti

Offline moskino11

  • Utente normale
  • ***
  • Post: 179
  • Respect: 0
    • Mostra profilo
Re:Verifica connessione assente
« Risposta #2 il: 20 Maggio 2015, 14:19:37 CEST »
0
Grazie LinkOut
Appena torno a casa controllo e ti faccio sapere!!

Post unito: [time]20 Maggio 2015, 20:08:24 CEST[/time]
Ho fatto come dici tu... ho creato la classe connectionDetector e poi nella classe splashScreen ho inserito quel pezzo di codice. ti posto il codice della classe splashScreen
Codice (Java): [Seleziona]
ublic class SplashScreen extends Activity {


    // Splash screen timer
    private static int SPLASH_TIME_OUT = 3000;


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash_screen);

        // Codice per cambiare il font
        Typeface myTypeface = Typeface.createFromAsset(this.getAssets(),"Wrighters.ttf");
        TextView waitingTimeView = (TextView) findViewById(R.id.testoSplash);
        waitingTimeView.setTypeface(myTypeface);




        new Handler().postDelayed(new Runnable() {


            public void run() {
                    // This method will be executed once the timer is over
                    // Start your app main activity

                ConnectionDetector cd = new ConnectionDetector(this); // cancel
                if(!cd.isInternetConnected()){
                    Intent i = new Intent(MainActivity.this, ConnessioneAssente.class);
                    startActivity(i);
                    // ConnessioneAssente.class e la classe collegata all'activity in cui mi compare
                    // un testo
                }
else{


                    Intent i = new Intent(SplashScreen.this, MainActivity.class);
                    startActivity(i);
                // close this activity
                finish();
            }
        }, SPLASH_TIME_OUT);
    }
}

}

Post unito: [time]20 Maggio 2015, 22:39:56 CEST[/time]
Ho provato a fare anche un progetto banalissimo ma quando avvio l'app, si arresta!! non capisco il motivo....sembra così banale ma mi sta dando un casino di problemi

Post unito: 20 Maggio 2015, 23:37:57 CEST
Finalmente ho risolto!
avevo un problema nell'androide manifest ???
« Ultima modifica: 20 Maggio 2015, 23:37:57 CEST da moskino11, Reason: Merged DoublePost »