2012-03-05 14 views
7

Sto sviluppando un'applicazione di chat Android. All'avvio l'applicazione avvia un servizio. Il servizio si collega al server di chat. Se per qualche motivo la connessione si interrompe, l'utente può fare clic su un pulsante e la funzione riconnessione() viene richiamata.Riconnettersi a Internet automaticamente

L'applicazione viene eseguita su un dispositivo mobile. L'applicazione si connette a Internet tramite Wi-Fi. Se l'utente, camminando con il telefono, esce dall'area di copertura Wi-Fi, la connessione si interrompe. Voglio che la mia applicazione cerchi automaticamente di riconnettersi a Internet in questi casi. Qual è il modo migliore per farlo secondo te?

risposta

6

Aggiungi a manifestare:

... 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission> 
<uses-permission android:name="android.permission.INTERNET">   </uses-permission> 
... 
    <receiver android:name=".Internet" android:enabled="true"> 
     <intent-filter> 
      <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> 
     </intent-filter> 
    </receiver> 
... 

Ricevitore:

package YourPackage; 
    import android.content.BroadcastReceiver; 
    import android.content.Context; 
    import android.content.Intent; 

    public class Internet extends BroadcastReceiver 
    {  
     @Override 
     public void onReceive(final Context context, Intent intent) 
     { 
      if (intent.getAction().equalsIgnoreCase("android.net.conn.CONNECTIVITY_CHANGE")) 
      { 
       if isInternet(context) 
       { 
        // Your Code 
       } 
      }  
     } 

     public boolean isInternet(Context context) 
     { 
      ConnectivityManager IM = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
      NetworkInfo activeNetworkInfo = IM.getActiveNetworkInfo(); 
      return activeNetworkInfo != null; 
     }  
    } 
+0

È la trasmissione inviato automaticamente a seconda dell'ambiente di Android? – mneri

+0

Sì. Il sistema invierà broadcast quando lo stato della rete è cambiato. – XXX

+0

Funziona perfettamente! Grazie! – mneri

Problemi correlati