I have an android app, in that there is a particular requirement where in I need to check if the Android device has a network provider or its just WiFi enabled.
Thank You.
This should do the trick.
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if(networkInfo != null && networkInfo.isConnected()){
//Your code here
}
final ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
final NetworkInfo networkInfo = cm.getActiveNetworkInfo();
int type = networkInfo.getType();
String typeName = networkInfo.getTypeName();
boolean connected = networkInfo.isConnected()
networkInfo.getType() will return 0 when connected to Mobile
network or 1 when connected trough WIFI.
networkInfo.getTypeName()
will return the strings mobile or WIFI.
networkInfo.isConnected()
will tell you whether or not you have an active connection.
You should take a look at the documentation.
isProviderEnabled(LocationManager.NETWORK_PROVIDER) is what you need
Related
I tried to check Internet Connectivity in my App to handle if there is no internet with this code. It always returns true with Wi-Fi type.
ConnectivityManager connMgr = (ConnectivityManager)
getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected()) {
System.out.println( networkInfo.getTypeName());
Loading_News();
}
I need to get the interface name of the active network (e.g. wlan0) in API 21.
In API 23 I can do:
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
Network activeNetwork = connectivityManager.getActiveNetwork();
if (activeNetwork != null)
{
LinkProperties linkProperties = connectivityManager.getLinkProperties(activeNetwork);
String name = linkProperties.getInterfaceName();
...
}
However ConnectivityManager.getActiveNetwork() is only available in API 23 and above.
Is there an acceptable solution compatible with API 21?
I have come up with the following which iterates through all networks and compares NetworkInfo.toString() (because comparing by reference or value doesn't work). It seems to work but it also feels like a huge hack:
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
if (activeNetworkInfo != null)
{
Network[] networks = connectivityManager.getAllNetworks();
for (Network network : networks)
{
NetworkInfo networkInfo = connectivityManager.getNetworkInfo(network);
if (networkInfo.toString().equals(activeNetworkInfo.toString()))
{
LinkProperties linkProperties = connectivityManager.getLinkProperties(network);
String name = linkProperties.getInterfaceName();
...
break;
}
}
}
Any suggestions appreciated.
This is my code:
ConnectivityManager connMgr = (ConnectivityManager) getSystemService(Activity.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
but networkInfo is always null..
What can be the cause for this odd thing?
Docs say that getActiveNetworkInfo can return null if there is no default network set. "This may return null when there is no default network."
http://developer.android.com/reference/android/net/ConnectivityManager.html#getActiveNetworkInfo()
A better option might be to check the cell data or wifi connection.
Check your mobile connection.
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mobNetInfo = connectivityManage.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
Check your wifi connection.
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo wifiNetInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
I would like to check the network connection with the LocationManager in Android.
My code works fine with Galaxy SII and Version 4.0.3.
But it does not work with Galaxy S and Version 2.3.6.
The code:
isGPSEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
isNetworkEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
I am connected to a Wi-Fi network for sure. But the if statement
if (!isGPSEnabled && !isNetworkEnabled)
returns true. Are there known bugs and is there a reliable way to check it?
Try this out:
//If you only want to check your Internet connection available or not
public static boolean isNetworkAvailable(Context context) {
ConnectivityManager connectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
NetworkInfo wifiInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
return activeNetworkInfo != null && activeNetworkInfo.isConnected();}
Note: wifiInfo provide you status about your Wifi, still it will be there poor connection I think it will good if make HTTP reuest, for more details check link provided.
Edit:
For more information you can [refer this][1].
I am using below code in my every android project.
It will check for any active network that are used for outgoing connection.
public static boolean isNetworkAvailable(Context context)
{
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = cm.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnectedOrConnecting())
return true;
return false;
}
Use this code:
public static boolean checkConn(Context ctx)
{
ConnectivityManager conMgr = (ConnectivityManager)ctx.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo wifiInfo = conMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
NetworkInfo mobileInfo = conMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
NetworkInfo info = conMgr.getActiveNetworkInfo();
if(info != null && info.isConnected()) {
Log.v("NetworkInfo","Connected State");
return true;
}
return false;
}
In my application I have checked whether ineternet connection is there using the below code
private boolean isNetworkAvailable() {
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null; }
Now the problem is that how can i check whether conncetion to one remote computer Ip is exist or not...I need to connect to an external IP webservice.....Need to check connetion to that .Suppose the link is like as given below
http://192.168.1.158/VisionEPODWebservice/Manifest.asmx
InetAddress.getByName(ip).isReachable(timeout);
see documentation of InetAddress