2011-09-19 14 views
8

मैं एंड्रॉइड में वाईफ़ाई का उपयोग कर एक एप्लिकेशन विकसित कर रहा हूं। जब भी मैं वाईफाई से कनेक्ट करते समय गलत पासवर्ड दर्ज करता हूं, मुझे अमान्य प्रमाणीकरण के लिए कोई अधिसूचना नहीं मिलती है। यह सिर्फ कनेक्ट करने के लिए पुनः प्रयास करने पर रहता है। वाईफाई वायरलेस सेटिंग में वही व्यवहार मिलता है।एंड्रॉइड में वाईफ़ाई प्रमाणीकरण त्रुटि

क्या वाईफ़ाई प्रमाणीकरण विफल होने का कोई तरीका है ??

WifiManager.EXTRA_SUPPLICANT_ERROR - मैं कभी नहीं इस मिल ..

उत्तर

11

इस कोड काम करता है:

IntentFilter mIntentFilter = new IntentFilter(); 
mIntentFilter.addAction(WifiManager.SUPPLICANT_STATE_CHANGED_ACTION); 
registerReceiver(receiverWifi, mIntentFilter); 


class WifiReceiver extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context c, Intent intent) { 
     String action = intent.getAction(); 
     if(action.equals(WifiManager.SUPPLICANT_STATE_CHANGED_ACTION)){ 
      Log.d("WifiReceiver", ">>>>SUPPLICANT_STATE_CHANGED_ACTION<<<<<<"); 
      SupplicantState supl_state=((SupplicantState)intent.getParcelableExtra(WifiManager.EXTRA_NEW_STATE)); 
      switch(supl_state){ 
      case ASSOCIATED:Log.i("SupplicantState", "ASSOCIATED"); 
       break; 
      case ASSOCIATING:Log.i("SupplicantState", "ASSOCIATING"); 
       break; 
      case AUTHENTICATING:Log.i("SupplicantState", "Authenticating..."); 
       break; 
      case COMPLETED:Log.i("SupplicantState", "Connected"); 
       break; 
      case DISCONNECTED:Log.i("SupplicantState", "Disconnected"); 
       break; 
      case DORMANT:Log.i("SupplicantState", "DORMANT"); 
       break; 
      case FOUR_WAY_HANDSHAKE:Log.i("SupplicantState", "FOUR_WAY_HANDSHAKE"); 
       break; 
      case GROUP_HANDSHAKE:Log.i("SupplicantState", "GROUP_HANDSHAKE"); 
       break; 
      case INACTIVE:Log.i("SupplicantState", "INACTIVE"); 
       break; 
      case INTERFACE_DISABLED:Log.i("SupplicantState", "INTERFACE_DISABLED"); 
       break; 
      case INVALID:Log.i("SupplicantState", "INVALID"); 
       break; 
      case SCANNING:Log.i("SupplicantState", "SCANNING"); 
       break; 
      case UNINITIALIZED:Log.i("SupplicantState", "UNINITIALIZED"); 
       break; 
      default:Log.i("SupplicantState", "Unknown"); 
       break; 

      } 
      int supl_error=intent.getIntExtra(WifiManager.EXTRA_SUPPLICANT_ERROR, -1); 
      if(supl_error==WifiManager.ERROR_AUTHENTICATING){ 
       Log.i("ERROR_AUTHENTICATING", "ERROR_AUTHENTICATING!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); 
      } 
     } 
    } 
} 

<receiver 
    android:name=".MyActivity$WifiReceiver" 
    android:process=":remote" > 
</receiver> 
+1

यह वास्तव में काम करता है! धन्यवाद! – pikabu

+1

हालांकि यह 100% विश्वसनीय प्रतीत नहीं होता है। –

+1

@ahtartam यह कैसे पता चलेगा कि इस सप्लांटेंस्टेट किस बारे में बात कर रहा है? – Javanator

संबंधित मुद्दे