2011-12-30 10 views
16

पर वाईफाई कनेक्ट होने तक प्रतीक्षा करें मेरे पास एक छोटा प्रोग्राम है जो वाईफ़ाई नेटवर्क से कनेक्ट करने का प्रयास कर रहा है। यह डिवाइस पर वाईफाई को सक्षम बनाता है, तो यह पहली बार है कि यह कुछ नेटवर्क नेटवर्क से कनेक्ट है, यह कनेक्शन के लिए पासवर्ड चुनने और जोड़ने के लिए डिवाइस वाईफ़ाई लोड करता है। जब तक मैं प्रोग्राम को जोड़ने के लिए पासवर्ड नहीं जोड़ता, पूरा नहीं होना चाहिए। मैं वाईफ़ाई प्रबंधक से कनेक्ट होने तक प्रतीक्षा करने के लिए कुछ कैसे जोड़ सकता हूं? मैं सोने की कोशिश करता हूं लेकिन यह एप्लिकेशन को फ्रीज करता है और कनेक्ट करने के लिए वाईफ़ाई पॉप अप मेनू नहीं प्राप्त कर रहा हूं? कोई अन्य तरीके हैं?एंड्रॉइड

उत्तर

24

मुझे एक महीने पहले आपकी समस्या का समाधान मिला है, बस थ्रेड पुट विधि का उपयोग करें() इसमें शामिल है।
इस मामले में, मैं वाईफ़ाईएक्सप्लोरर एक्टिविटी का उपयोग सभी वाईफाई नेटवर्क को प्रदर्शित करने और उपयोगकर्ता से कनेक्ट करने की अनुमति देता हूं।

 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(); 

और इस समारोह वाईफ़ाई जाँच से जुड़े है या नहीं है:

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; 
} 

अपनी AndroidManifest.xml इस तरह दिखेगा यह सुनिश्चित करने के अंत में:

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

इसके अलावा, आप उपयोग कर सकते हैं कनेक्ट प्रतीक्षा करने के लिए प्रोग्रेसडिअलॉग। http://developer.android.com/guide/topics/ui/dialogs.html

+0

बहुत बहुत धन्यवाद। मैं इसका उपयोग करता हूं और यह बहुत अच्छा काम करता है – prokopis

+1

आपको मैनिफेस्ट में '' क्यों चाहिए? (मैंने कभी इसका उपयोग नहीं किया है, और मुझे समझ में नहीं आता कि यह क्या करता है) – MiniGod

+1

मैं इस गतिविधि के लिए रिसीवर रजिस्टर करने के लिए android.net.conn.CONNECTIVITY_CHANGE का उपयोग करता हूं, http://stackoverflow.com/questions/8127324/connectivitymanager-android देखें -नेट-कॉन-कनेक्टिविटी-चेंज – R4j