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 to share
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 to share
//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 to share
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 to share