Hassaan Rana
Hassaan Rana

Reputation: 55

Checking internet connectivity in android

I'm trying to check internet connectivity on recieving sms. But my service is force closing while changing internet state. E.g If I've enabled wifi its working fine but when I disable wifi app becomes closed with error. I'm using this code in onReceive function. Here is the code.

     ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);

     NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
     boolean isConnected = activeNetwork != null && activeNetwork.isConnectedOrConnecting();

     if(isConnected == true) { 
            Toast.makeText(context, "Internet", Toast.LENGTH_LONG).show();
     }
     else if(isConnected == false){
            Toast.makeText(context, "No Internet", Toast.LENGTH_LONG).show();
     }    

Upvotes: 0

Views: 156

Answers (4)

Sandy
Sandy

Reputation: 166

Try to use this code

add permission in manifest file

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />


public class ConnectionDetector {
public static boolean isConnectingToInternet(Context context){
    ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    if (connectivity != null) 
    {
        NetworkInfo[] info = connectivity.getAllNetworkInfo();
        if (info != null) 
            for (int i = 0; i < info.length; i++) 
                if (info[i].getState() == NetworkInfo.State.CONNECTED)
                {
                    return true;
                }

    }
    return false;
 }
}

call

  ConnectionDetector.isConnectingToInternet(LoginActivity.this);

Upvotes: 3

Salar Pourfallah
Salar Pourfallah

Reputation: 1582

i use this code
Create new class, try

public class Network{
    public static boolean isNetworkAvailable(Context context) {
        ConnectivityManager connectivityManager
                = (ConnectivityManager)  context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
        return activeNetworkInfo != null && activeNetworkInfo.isConnected();
    }
}

call

Network.isNetworkAvailable(Activity Name.this);

and use this permissions

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

Upvotes: 0

IntelliJ Amiya
IntelliJ Amiya

Reputation: 75798

You can add Below

 <!-- Internet Permissions -->
<uses-permission android:name="android.permission.INTERNET" />

<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

<!-- Network State Permissions -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Please Check this Demo

  1. Android Detect Internet Connection Status

Upvotes: 0

Naveen
Naveen

Reputation: 993

try to use this code

    WifiManager wifiManager = (WifiManager)this.context.getSystemService(Context.WIFI_SERVICE);
    wifiManager.setWifiEnabled(status);

   Also add Permission in Manifest File :
   <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

Upvotes: 0

Related Questions