3

我的应用程序在 android 中使用 wifi 管理器,但我遇到错误的情况是::WIFI 已打开但未通过身份验证(使用我们公司的 wifi 用户名和密码)当时我的应用程序被强制关闭,

我正在使用的代码是

try{
    if (connectivityManager != null && 
       (connectivityManager.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTED) ||
       (connectivityManager.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED))
    { 
        //You are connected, do something online.
        return true;
    }
    else if (connectivityManager.getNetworkInfo(0).getState() == NetworkInfo.State.DISCONNECTED ||  
             connectivityManager.getNetworkInfo(1).getState() == NetworkInfo.State.DISCONNECTED ) 
    {             
        //Not connected.        
        //Toast.makeText(getApplicationContext(), "You must be connected to the internet", Toast.LENGTH_LONG).show();
        loginTask.myPublishProgress("You must be connected to the internet");
        return false; 
    }   
    }
catch(NullPointerException ae)
   {
        ae.printStackTrace();
        loginTask.myPublishProgress("You must be connected to the internet");

   }
4

3 回答 3

1

使用SupplicantState

SupplicantState supState; 
wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
supState = wifiInfo.getSupplicantState();

在stackoverflow中查看这个答案

如果 COMPLETED - All authentication completed.

于 2013-05-07T05:49:46.493 回答
1

您好,请查看以下答案:

如何检测何时在 Android 中建立了 WIFI 连接?

如何查看 Android 上是否连接了 Wi-Fi?

于 2013-05-07T05:56:17.640 回答
0

不要使用

conectivityManager.getNetworkInfo(0) and getNetworkInfo(1).

而不是那种用途

无线上网

NetworkInfo conectivityManager = connectivity.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

对于移动网络(3g)

NetworkInfo conectivityManager = connectivity.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

果冻豆上的原因会使这样的硬编码值产生麻烦。

于 2013-05-07T06:33:46.450 回答