Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:我如何检查wifi是否经过认证_Android_Android Wifi - Fatal编程技术网

Android:我如何检查wifi是否经过认证

Android:我如何检查wifi是否经过认证,android,android-wifi,Android,Android Wifi,我的应用程序在android中使用wifi manager,但我遇到了一个错误,情况是:wifi已打开,但未通过身份验证(使用我们公司的wifi用户名和密码),当时我的应用程序正在强制关闭 我使用的代码是 try{ if (connectivityManager != null && (connectivityManager.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTED) ||

我的应用程序在android中使用wifi manager,但我遇到了一个错误,情况是: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");

   }
使用


如果
已完成-所有身份验证已完成。

请检查以下答案:

不要使用

conectivityManager.getNetworkInfo(0) and getNetworkInfo(1).
而不是那种用途

无线上网

NetworkInfo conectivityManager = connectivity.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
适用于移动网络(3g)


因为在Jelly Beans上硬编码这样的值会有困难。

你能发布你的日志吗?不知道旧的API,但是当输入错误的密码以确保身份验证是“禁用原因”时,请求状态很少提供足够的转换在现在隐藏的API中,也就是说,我们永远无法知道最近的API中的身份验证是否失败。我的设备wi-fi没有经过身份验证,但每次都会返回完成的代码。这些答案只检查有效连接,没有提供足够的细节来断言身份验证是问题所在。我在这篇文章的其他地方的评论是:“我不知道旧的API,但是当输入错误的密码时,请求状态很少提供足够的转换,以确保身份验证是现在隐藏的API中的“不可禁用的原因”——也就是说,我们永远无法知道最近的API中的身份验证是否失败”同意!对于高于21的api,可以使用ConnectionManager.NetworkCallback()进行检查。但是,对于低于21的api,没有解决方案检查,如果有人找到该解决方案,请提供帮助。非常感谢。
NetworkInfo conectivityManager = connectivity.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
NetworkInfo conectivityManager = connectivity.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);