本文转自:http://blog.csdn.net/wangkuifeng0118/article/details/7333319

public static boolean isNetworkAvailable(Context context) {
ConnectivityManager connectivity = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity == null) {
Log.i("NetWorkState", "Unavailabel");
return false;
} else {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
Log.i("NetWorkState", "Availabel");
return true;
}
}
}
}
return false;
}

上面这个方法就是判断网络是否连接的代码,返回true表示有网络,返回false表示无网络。 在Android网络应用程序开发中,经常要判断网络连接是否可用,因此经常有必要监听网络状态的变化。android的网络状态监听可以用BroadcastReceiver来接收网络状态改变的广 播,具体实现如下:

@Override
public void onReceive(Context context, Intent intent) {
Log.e(TAG, "网络状态改变");

boolean success = false;

//获得网络连接服务
ConnectivityManager connManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
// State state = connManager.getActiveNetworkInfo().getState();
State state = connManager.getNetworkInfo(
ConnectivityManager.TYPE_WIFI).getState(); // 获取网络连接状态
if (State.CONNECTED == state) { // 判断是否正在使用WIFI网络
success = true;
}

state = connManager.getNetworkInfo(
ConnectivityManager.TYPE_MOBILE).getState(); // 获取网络连接状态
if (State.CONNECTED != state) { // 判断是否正在使用GPRS网络
success = true;
}

if (!success) {
Toast.makeText(LocationMapActivity.this, "您的网络连接已中断", Toast.LENGTH_LONG).show();
}

}
在Activity的onCreate中:
//注册网络监听
IntentFilter filter = new IntentFilter();
filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
registerReceiver(mNetworkStateReceiver, filter);
//在Activity中的onDestroy中:
unregisterReceiver(mNetworkStateReceiver); //取消监听 AndroidManifest.xml
  • 为了访问网络我们需要 INTERNET 权限
  • 为了检查网络状态我们需要 ACCESS_NETWORK_STATE 权限
<!-- Internet Permissions -->
<uses-permission android:name="android.permission.INTERNET" />

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

更多相关文章

  1. Android通知栏图标显示网络图片
  2. Android:网络编程
  3. Android(安卓)沉浸式状态栏 +DrawerLayout+Toolbar,适配4.4X及以
  4. Android中子线程网络查看器与Handler消息处理器
  5. ### Android(安卓)判断app的状态 重启app
  6. Android判断是否有网络连接
  7. Android中判断app是否连接网络
  8. Android网络电话软件Sipdroid试用
  9. Android中FTP上传、下载

随机推荐

  1. android 滚动条 相关属性
  2. Android分享文稿 ( by quqi99 )
  3. Android,UI主线程与子线程
  4. android WebView总结
  5. Android(安卓)CTS的使用
  6. Android加载大图Bitmap发生OOM(Out Of Mem
  7. Android笔记-2
  8. Android中利用GridView实现水平和垂直均
  9. Android(安卓)修改横屏角度为顺时针270度
  10. Android启动流程分析(十) action的执行和