Android平台上开发基于网络的应用,必然需要去判断当前的网络连接情况。

package com.example.network;import android.content.Context;import android.net.ConnectivityManager;import android.net.NetworkInfo;public class NetworkUtil {/** * 检查网络是否可用 *  * @param context * @return */public static boolean isNetworkAvailable(Context context) {ConnectivityManager manager = (ConnectivityManager) context.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);if (manager == null) {return false;}NetworkInfo networkinfo = manager.getActiveNetworkInfo();if (networkinfo == null || !networkinfo.isAvailable()) {return false;}return true;}}


当网络不可用的时候,我们应该提供一个 界面让用户区设置网络连接。Android 2.3以上跟Android 2.3以前的设置方式是不一样的,我们需要判断一下。

package com.example.network;import android.os.Bundle;import android.app.Activity;import android.app.AlertDialog;import android.app.AlertDialog.Builder;import android.content.ComponentName;import android.content.Context;import android.content.DialogInterface;import android.content.Intent;import android.util.Log;import android.view.Menu;import android.widget.Toast;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}@Overrideprotected void onStart() {Log.i("MainActivity", "onStart");if (!NetworkUtil.isNetworkAvailable(this)) {showSetNetworkUI(this);} else {Toast.makeText(this, "网络可用...", 0).show();}super.onStart();}@Overrideprotected void onResume() {Log.i("MainActivity", "onStart");super.onResume();}/* * 打开设置网络界面 */public void showSetNetworkUI(final Context context) {// 提示对话框AlertDialog.Builder builder = new Builder(context);builder.setTitle("网络设置提示").setMessage("网络连接不可用,是否进行设置?").setPositiveButton("设置", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubIntent intent = null;// 判断手机系统的版本 即API大于10 就是3.0或以上版本if (android.os.Build.VERSION.SDK_INT > 10) {intent = new Intent(android.provider.Settings.ACTION_WIFI_SETTINGS);} else {intent = new Intent();ComponentName component = new ComponentName("com.android.settings","com.android.settings.WirelessSettings");intent.setComponent(component);intent.setAction("android.intent.action.VIEW");}context.startActivity(intent);}}).setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.dismiss();}}).show();}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}


记得在 Manifest文件中加入以下权限

<uses-permission android:name="android.permission.INTERNET"/>    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>






更多相关文章

  1. Android网络连接判断与处理
  2. Android(安卓)设置StatusBar的颜色
  3. windowSoftInputMode属性设置值
  4. windowSoftInputMode属性设置值
  5. 2010.12.29(2)——— android GridView
  6. android notification 的总结分析
  7. Android倒计时 Android仿京东倒计时 Android商城倒计时
  8. android webview 使用js加载json文件失败
  9. android中跳转系统自带的界面

随机推荐

  1. android中的启动模式
  2. Android捕获Home键
  3. Android常用颜色表
  4. Android(安卓)Study -- pmem driver代码
  5. android ndk开发中char和unsigned char问
  6. Android: An introduction to the Edify
  7. android scrollview滑动时悬浮部分控件
  8. Android 使用Camera2 调用摄像头显示预览
  9. Android图片上传的工具类
  10. android实现播放器反射性动画效果