2012-03-05 4 views
7

Я разрабатываю приложение для Android-чата. При запуске приложение запускает службу. Служба подключается к серверу чата. Если по какой-либо причине соединение опускается, пользователь может нажать кнопку и вызвать функцию reconnect().Подключитесь к Интернету автоматически

Приложение работает на мобильном устройстве. Приложение подключается к Интернету через Wi-Fi. Если пользователь, идущий со своим телефоном, выходит из зоны покрытия Wi-Fi, соединение идет вниз. Я хочу, чтобы мое приложение автоматически пыталось подключиться к Интернету в таких случаях. Каков наилучший способ сделать это, на ваш взгляд?

ответ

6

Добавить в манифест:

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

Приемник:

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

ли трансляция автоматически отправляется на Android среды? – mneri

+0

Да. Система будет отправлять широковещательные сообщения при изменении состояния сети. – XXX

+0

Это прекрасно работает! Спасибо! – mneri

Смежные вопросы