2011-12-30 27 views
16

Bir wifi ağına bağlanmaya çalışan küçük bir programım var. Cihazdaki wifi'yi etkinleştirir, daha sonra belirli ağlara bağlanırsa, bağlantı için parola seçmek ve eklemek için aygıt wifi'yi yükler. Programa bağlanmak için şifreyi ekleyene kadar program bitmemelidir. Bağlı olan wifi yöneticisinden gelene kadar beklemek için nasıl bir şey ekleyebilirim? Uyumaya çalışıyorum ama uygulamayı donduruyor ve bağlanmak için wifi açılır menüsü alamıyorum? Başka yol var mı?android wifi bağlanana kadar bekleyin

cevap

24

Sorununuzu bir ay önce buldum, sadece Thread put yöntemi isConnected() yöntemini kullanın.
Bu durumda, tüm wifi ağını görüntülemek ve ona bağlanmasına izin vermek için WifiExplorerActivity kullanıyorum.

 Thread t = new Thread() { 
     @Override 
     public void run() { 
      try { 
        //check if connected! 
       while (!isConnected(WifiExplorerActivity.this)) { 
        //Wait to connect 
        Thread.sleep(1000);      
       } 

       Intent i = new Intent(WifiExplorerActivity.this, MainActivity.class); 
       startActivity(i); 

      } catch (Exception e) { 
      } 
     } 
    }; 
    t.start(); 

Ve bu wifi kontrol etmek fonksiyon bağlandı veya değil: AndroidManifest.xml bu gibi bakmak emin olun Nihayet

public static boolean isConnected(Context context) { 
    ConnectivityManager connectivityManager = (ConnectivityManager) 
     context.getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo networkInfo = null; 
    if (connectivityManager != null) { 
     networkInfo = connectivityManager.getActiveNetworkInfo(); 
    } 

    return networkInfo != null && networkInfo.getState() == NetworkInfo.State.CONNECTED; 
} 

: Ayrıca

<activity android:name=".WifiExplorerActivity" >   
    <intent-filter> 
      <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> 
     </intent-filter> 
</activity> 

kullanabileceğiniz ProgressDialog beklemek için bekleyin. Çok teşekkürler, http://developer.android.com/guide/topics/ui/dialogs.html

+0

. Onu kullanıyorum ve harika çalışıyor – prokopis

+1

Bildiride neden 'e ihtiyacınız var? (Hiç kullanmadım ve ne yaptığını anlamıyorum) – MiniGod

+1

Bu etkinlik için Alıcıyı kaydetmek için android.net.conn.CONNECTIVITY_CHANGE kullanıyorum, bkz. Http://stackoverflow.com/questions/8127324/connectivitymanager-android -net-conn-connectivity-change – R4j

İlgili konular