Android 4.0 - check WiFi connection
I am using the function below to check the wifi hotspot connection:
public boolean IsWiFiConnected(){
List<WifiConfiguration> wifiConfigList = wifiManager.getConfiguredNetworks();
boolean retVal=false;
for(WifiConfiguration wifiConf : wifiConfigList){
if(wifiConf.status==WifiConfiguration.Status.CURRENT){
retVal=true;
break;
}
}
return retVal;
}
In android 4.0, it always returns false. It works great in previous versions. Thanks to
+3
source to share
3 answers
There is a faster and more reliable method than yours.
public boolean IsWiFiConnected() {
ConnectivityManager manager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo netInfo = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
return netInfo.isConnected();
}
+4
source to share
Just to expand on gabriel's answer, as it might be worth checking that the user has some kind of data connection, i.e. WiFi or Data. This will also display a dialog asking the user if they want to enable Wi-Fi using an Intent. Hope this helps you!
private boolean haveNetworkConnection() {
boolean haveConnectedWifi = false;
boolean haveConnectedMobile = false;
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo[] netInfo = cm.getAllNetworkInfo();
for (NetworkInfo ni : netInfo) {
if (ni.getTypeName().equalsIgnoreCase("WIFI"))
if (ni.isConnected())
haveConnectedWifi = true;
if (ni.getTypeName().equalsIgnoreCase("MOBILE"))
if (ni.isConnected())
haveConnectedMobile = true;
}
if (haveConnectedWifi == false && haveConnectedMobile == false) {
Log.d("Network State", "false");
AlertDialog.Builder alert = new AlertDialog.Builder(YourActivity.this);
alert.setTitle("No Data Connection!");
alert.setMessage("You have no data connection.");
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// TODO Auto-generated method stub
final Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
final ComponentName cn = new ComponentName("com.android.settings", "com.android.settings.wifi.WifiSettings");
intent.setComponent(cn);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity( intent);
}
});
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
return;
}
});
alert.show();
}else{
//do something else
}
return haveConnectedWifi || haveConnectedMobile;
}
+2
source to share
check wifi status:
ConnectivityManager conMgr;
NetworkInfo netInfo;
WifiManager wifiMgr;
conMgr=(ConnectivityManager)getSystemService(context.WIFI_Service);
netInfo=conMgr.getActiveNetworkInfo();
if(!(netInfo==null))
{
if(WifiMgr.isWifiEnabled())
{
//wifi enabled
}
else
{
//wifi disabled i.e not available
}
}
0
source to share