2012-03-05 21 views
7

Android sohbet uygulaması geliştiriyorum. Başlangıçta uygulama bir hizmet başlattı. Servis sohbet sunucusuna bağlanır. Herhangi bir nedenle bağlantı kesilirse, kullanıcı bir düğmeyi tıklayabilir ve yeniden bağlantı() işlevi çağrılır.İnternete tekrar bağlan

Uygulama, bir mobil aygıtta çalışır. Uygulama Wi-Fi ile internete bağlanır. Kullanıcı telefonunu kullanarak Wi-Fi kapsama alanından çıkarsa bağlantı kesilir. Uygulamamın böyle durumlarda otomatik olarak İnternet'e yeniden bağlanmayı denemesini istiyorum. Bunu sizin düşüncenize göre yapmanın en iyi yolu nedir?

cevap

6

Manifest ekle:

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

Alıcı:

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

yayın Android ortamda tarafından otomatik olarak gönderilen mı? – mneri

+0

Evet. Ağ durumu değiştiğinde sistem yayın gönderir. – XXX

+0

Mükemmel çalışıyor! Teşekkür ederim! – mneri