Android: ConnectivityManager always returns null

I always get a null pointer exception even when I am connected to wifi on this piece of code:

       ConnectivityManager connectivityManager = (ConnectivityManager)
                context.getSystemService(Context.CONNECTIVITY_SERVICE);
    Log.d("Problem", connectivityManager.getActiveNetworkInfo().toString());

      

My rights:

<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.SEND_SMS" >
</uses-permission>
<uses-permission android:name="android.permission.RECEIVE_SMS" >
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_COARSE_UPDATES" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.CONNECTIVITY_CHANGE" />

      

What am I missing: /? I just need to know when it connected to Wi-Fi and when that will change. But the connection manager always returns null in ActiveNetworkInfo

+3


source to share


5 answers


use this to know if WIFI is connected or not.

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;

public class Network {
private Context context;
private ConnectivityManager connManager;

public Network(Context ctx) {
    this.context = ctx;
}

public boolean getConnectivityStatus() {
    connManager = (ConnectivityManager) context
            .getSystemService(Context.CONNECTIVITY_SERVICE);

    NetworkInfo info = connManager.getActiveNetworkInfo();
    if (info != null)
        return info.isConnected(); // WIFI connected
    else
        return false; // no info object implies no connectivity
}

      



}

+10


source


connectivityManager.getActiveNetworkInfo()

update:

return the current network connection to the active device, if your device only has Wi-Fi and Wi-Fi does not open, it is always zero.



specify the registration of the action: ConnectivityManager.CONNECTIVITY_ACTION

when you get the action, you can check the connection using the following code:

NetworkInfo network = mConnectivityManager.getActiveNetworkInfo();
        if (network != null) {
            boolean isConnectedOrConnecting =  network.isConnectedOrConnecting();
            ...
        }

      

+1


source


   //decleration

boolean net;


//OnCreate
net = isOnline();
if (net == true) {
//perform internet related task.
}
else
{

                        AlertDialog.Builder alert = new AlertDialog.Builder(
                                AddSite.this);

                        alert.setMessage(
                                "No signal found or Internet connection is not connected.")
                                .setTitle("Error")
                                .setNeutralButton("OK",
                                        new DialogInterface.OnClickListener() {

                                            public void onClick(
                                                    DialogInterface dialog,
                                                    int which) {
                                                // TODO Auto-generated method
                                                // stub

                                            }
                                        }).show();

}

//function

public boolean isOnline() {
        ConnectivityManager cm = (ConnectivityManager) this
                .getSystemService(Context.CONNECTIVITY_SERVICE);

        NetworkInfo activeNetworkInfo = cm.getActiveNetworkInfo();
        return activeNetworkInfo != null;

        // return cm.getActiveNetworkInfo().isConnected();

    }

      

0


source


Have you checked if Data Connexion is activated ?

0


source


public static boolean isNetworkAvailable(Context ctx) {
    NetworkInfo info = getActiveNetworkInfo(ctx);
    return info != null && info.isAvailable();
}

public static boolean isWifiAvailable(Context ctx) {
    NetworkInfo info = getActiveNetworkInfo(ctx);
    return info != null && info.isAvailable()
            && info.getType() == ConnectivityManager.TYPE_WIFI;
}

private static NetworkInfo getActiveNetworkInfo(Context ctx) {
    ConnectivityManager cm = (ConnectivityManager) ctx
            .getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo info = cm.getActiveNetworkInfo();
    return info;
}

      

0


source







All Articles