2012-12-07 86 views
0

我是一名android开发人员。我正面临使用WiFi配置的问题。当有人打开我的应用程序时,我需要连接到WiFi。用户必须配置WiFi,并且仅在该应用继续之后。我提供最近的网络列表,用户必须选择他已知的网络。用户必须输入所选网络的密码。我如何检查用户是否输入了有效/正确的密码以启用WiFi连接。WiFi连接Android应用程序

请指导我。

在此先感谢。

+2

Android通常已经管理自己的WiFi连接,不是吗?简单地检查用户是否已经连接好了,如果不是 - 给他们一个信息,要求他们连接?否则,你正在重新发明轮子。 –

+0

[如何以编程方式连接到Android中特定的WiFi网络?](http://stackoverflow.com/questions/8818290/how-to-connect-to-a-specific-wifi-network-in-android - 编程) – bummi

回答

0

好问题。只需尝试连接到已定义的AP并验证结果:

WifiConfiguration wc = new WifiConfiguration(); 
... 
    // If password is empty, it should be left untouched 
     if (!TextUtils.isEmpty(pswd)) { 
      if (pswd.length() == 64) { 
       // Goes unquoted as hex 
       wc.preSharedKey = pswd; 
      } else { 
       // Goes quoted as ASCII 
       wc.preSharedKey = TextUtil.convertToQuotedString(pswd); 
      } 
     } 



int res = -1; 

res = m_WifiManager.addNetwork(wc); 

boolean b = m_WifiManager.enableNetwork(res, true);  

     if(b == true){ 

      fixSupplicant(); 

      m_WifiManager.saveConfiguration(); 

      //success 
     } 
     else{   
      //failed 
.... 






private void fixSupplicant() { 
    final SupplicantState state = m_WifiManager.getConnectionInfo().getSupplicantState(); 
    boolean isReconnectDone = false; 

    if ((state == SupplicantState.SCANNING) 
      || (state == SupplicantState.DISCONNECTED) 
      || (state == SupplicantState.DORMANT)) { 
     isReconnectDone = m_WifiManager.reconnect();; 

    } 

} 
+0

非常感谢答案。你能否请让这件事更容易理解。一个可行的例子将会非常有用。 – user1886887

+0

@ user1886887您是否想要使用paswd创建WiFi配置文件并连接到的示例? –

+0

是的。多数民众赞成我正在寻找。一旦用户从我显示的列表中选择一个网络(最近的wifi连接),我将显示一个警告框,要求他输入密码。我需要检查他是否提供了正确的密码,然后打算下一页。这是我需要的朋友.. – user1886887

0

您可以注册BroadcastReceiver的动作WIFI_STATE_CHANGED_ACTIONWifiManager
然后,当Wifi状态改变时,您的接收器将被调用,以便用户将他的手机连接到WiFi网络。

相关问题