2012-03-05 14 views
7

Estoy desarrollando una aplicación de chat de Android. Al inicio, la aplicación lanza un servicio. El servicio se conecta al servidor de chat. Si por algún motivo la conexión se cae, el usuario puede hacer clic en un botón y se llama a la función de reconexión().Vuelva a conectarse a Internet automáticamente

La aplicación se ejecuta en un dispositivo móvil. La aplicación se conecta a Internet a través de Wi-Fi. Si el usuario, caminando con su teléfono, sale del área de cobertura de Wi-Fi, la conexión se desactiva. Quiero que mi aplicación trate automáticamente de volver a conectarse a Internet en tales casos. ¿Cuál es la mejor manera de hacer esto en tu opinión?

Respuesta

6

Añadir a manifestar:

... 
<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> 
... 

receptor:

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

¿Es la emisión enviada automáticamente por el entorno Android? – mneri

+0

Sí. El sistema enviará difusión cuando el estado de la red cambie. – XXX

+0

¡Eso funciona perfectamente! ¡Gracias! – mneri

Cuestiones relacionadas