Android 判断网络连接状态
2017-02-03 本文已影响100人
匡风含情
在Android上,我们需要对不同的网络情况做出一些操作。官方提供了监听网络状态变化的广播,用来监听网络的变化情况。
private IntentFilter intentFilter;
private NetworkChangeReceiver networkChangeReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
intentFilter = new IntentFilter();
intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
networkChangeReceiver = new NetworkChangeReceiver();
registerReceiver(networkChangeReceiver, intentFilter);
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(networkChangeReceiver);
}
class NetworkChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = manager.getActiveNetworkInfo();
if (networkInfo!=null && networkInfo.isAvailable()) {
Toast.makeText(context, "networdk is available", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(context, "networdk is unavailable", Toast.LENGTH_SHORT).show();
}
}
}
清单文件需要加上对应的权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>