How To Check If Wifi Is Really Connected In Android
I'd like my android device to connect to a wifi hotspot. I created a new wificonfiguration and add it into the wifimanager, this wificonfiguration has NetworkId.Then I invoke the f
Solution 1:
You can try this:
ConnectivityManagercm= (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkInfowifi= cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (wifi.isConnected()) {
// Your code here
}
Edit: More details:
Register a BroadcastReceiver
in your manifest like so:
<receiverandroid:name="WifiReceiver"><intent-filter><actionandroid:name="android.net.conn.CONNECTIVITY_CHANGE"/><actionandroid:name="android.net.wifi.STATE_CHANGE"/></intent-filter></receiver>
Then put the code above on the onReceive()
method of your receiver like so:
@OverridepublicvoidonReceive(Context context, final Intent intent) {
ConnectivityManagercm= (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkInfowifi= cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (wifi.isConnected()) {
// Your code here
}
}
Solution 2:
You can check all the network. If you only want WIFI you can remove checking other 2 network.
publicstaticbooleanhasInternetConnection()
{
ConnectivityManagercm= (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfowifiNetwork= cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (wifiNetwork != null && wifiNetwork.isConnected())
{
returntrue;
}
NetworkInfomobileNetwork= cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (mobileNetwork != null && mobileNetwork.isConnected())
{
returntrue;
}
NetworkInfoactiveNetwork= cm.getActiveNetworkInfo();
if (activeNetwork != null && activeNetwork.isConnected())
{
returntrue;
}
returnfalse;
}
Don't forget to add following in manifest:
<uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permissionandroid:name="android.permission.INTERNET" /><uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE" />
Solution 3:
This may help you .
publicstaticbooleanisInternetAvailable(Context context) {
booleanhaveConnectedWifi=false;
booleanhaveConnectedMobile=false;
booleanconnectionavailable=false;
ConnectivityManagercm= (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo[] netInfo = cm.getAllNetworkInfo();
NetworkInfoinformationabtnet= cm.getActiveNetworkInfo();
for (NetworkInfo ni : netInfo) {
try {
if (ni.getTypeName().equalsIgnoreCase("WIFI"))
if (ni.isConnected()) haveConnectedWifi = true;
if (ni.getTypeName().equalsIgnoreCase("MOBILE"))
if (ni.isConnected()) haveConnectedMobile = true;
if (informationabtnet.isAvailable()
&& informationabtnet.isConnected())
connectionavailable = true;
Log.i("ConnectionAvailable", "" + connectionavailable);
} catch (Exception e) {
System.out.println("Inside utils catch clause , exception is"
+ e.toString());
e.printStackTrace();
}
}
return haveConnectedWifi || haveConnectedMobile;
}
Solution 4:
getNetworkInfo(int) method is deprecated. You can apply something like this
ConnectivityManagerconnectivityManager= (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfoactiveNetwork= connectivityManager.getActiveNetworkInfo();
if (activeNetwork != null) {
// connected to the internetif (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI) {
// connected to wifi
} elseif (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) {
// connected to the mobile network
}
} else {
// not connected to the internet
}
Also, please add this permission under AndroidManifest.xml
<uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE" />
Post a Comment for "How To Check If Wifi Is Really Connected In Android"