Reputation: 6881
I always get a null pointer exception, even when I'm connected to the wifi on this piece of code:
ConnectivityManager connectivityManager = (ConnectivityManager)
context.getSystemService(Context.CONNECTIVITY_SERVICE);
Log.d("Problem", connectivityManager.getActiveNetworkInfo().toString());
My permissions are:
<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 if when he's connected to a wifi spot and when this changes. But the connectivity manager always returns null on the ActiveNetworkInfo
Upvotes: 5
Views: 13767
Reputation: 46
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;
}
Upvotes: 0
Reputation: 2145
//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();
}
Upvotes: 0
Reputation: 5177
connectivityManager.getActiveNetworkInfo()
update:
return the current device's active network connect, if your device has only wifi and wifi is not opened, it always null.
suggestion register the action receive: ConnectivityManager.CONNECTIVITY_ACTION
when receive the action you can check the connect using follow code:
NetworkInfo network = mConnectivityManager.getActiveNetworkInfo();
if (network != null) {
boolean isConnectedOrConnecting = network.isConnectedOrConnecting();
...
}
Upvotes: 1
Reputation: 740
use this to know that 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
}
}
Upvotes: 15