Android之判断是否有网封装类

我们做项目的时候,一般都不能离开网络,下面是对判断是否有网类的封装
import android.content.Context;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.net.wifi.WifiInfo;import android.net.wifi.WifiManager;import android.widget.Toast;public class NetState {public final static int CONNECTION_NO      = 0; //无网络连接public static final int CONNECTION_HOME    = 1;//内网中wifipublic final static int CONNECTION_OUTSIDE = 2;//外网中wifi或使用移动数据//检查网络状态public static int checkState(Context context){int state = CONNECTION_NO;ConnectivityManager connectivityManager= (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);if(connectivityManager!=null){NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();if(networkInfo!=null&&networkInfo.isAvailable()&&networkInfo.isConnected()){if (networkInfo.getType() == ConnectivityManager.TYPE_WIFI) {WifiManager wifiManager =(WifiManager)context.getSystemService(Context.WIFI_SERVICE);WifiInfo wifiInfo = wifiManager.getConnectionInfo();//wifiInfo.getBSSID().equals(wifiMac);state = CONNECTION_HOME;}else {state =CONNECTION_OUTSIDE;}}} return state;}/** * 判断是否有网络 */@SuppressWarnings("deprecation")public static boolean IfNet(Context context){switch (NetState.checkState(context)) {case NetState.CONNECTION_NO:Toast.makeText(context, "网络断了哦,检查一下您的网络吧", Toast.LENGTH_SHORT).show();return true;default:break;}return false;}public static String getLocalMacAddress(Context context) {          WifiManager wifi = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);          WifiInfo info = wifi.getConnectionInfo();          return info.getMacAddress();      }      public static boolean isWifi(Context context) {              try {              WifiManager wm = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);              return (wm!=null && WifiManager.WIFI_STATE_ENABLED == wm.getWifiState());          } catch (Exception e) {                   }          return false;      }  }
还有一些其它的可以参考下
public class NetworkDetector {     public static boolean detect(Activity act) {             ConnectivityManager manager = (ConnectivityManager) act              .getApplicationContext().getSystemService(                     Context.CONNECTIVITY_SERVICE);             if (manager == null) {           return false;       }             NetworkInfo networkinfo = manager.getActiveNetworkInfo();             if (networkinfo == null || !networkinfo.isAvailable()) {           return false;       }        return true;    }} 这个类只有一个静态方法,用来检测当前系统的网络是否可用。如果可用,返回true。还要进一步说明的是,NetworkInfo类中有一个方法getType(),这个方法可以用来判断当前可用的网络是wifi,还是mobile等等。 再来看使用的例子。 view plaincopy to clipboardprint?boolean networkState = NetworkDetector.detect(XXXActivity.this);   if (!networkState) {       DialogUtil.openMsgDialog(XXXActivity.this,              android.R.drawable.ic_dialog_info,              “网络不可用,是否现在设置网络?”, android.R.string.ok,              android.R.string.cancel,              new DialogInterface.OnClickListener() {                 @Override                public void onClick(DialogInterface dialog, int which) {                     startActivityForResult(new Intent(                            ACTION_WIRELESS_SETTINGS), 0);                 }              }, new DialogInterface.OnClickListener() {                 @Override                public void onClick(DialogInterface dialog, int which) {                     dialog.cancel();                 }              }).show();   }         boolean networkState = NetworkDetector.detect(XXXActivity.this);       if (!networkState) {           DialogUtil.openMsgDialog(XXXActivity.this,                  android.R.drawable.ic_dialog_info,                  “网络不可用,是否现在设置网络?”, android.R.string.ok,                  android.R.string.cancel,                  new DialogInterface.OnClickListener() {                     @Override                     public void onClick(DialogInterface dialog, int which) {                         startActivityForResult(new Intent(                                ACTION_WIRELESS_SETTINGS), 0);                     }                  }, new DialogInterface.OnClickListener() {                     @Override                     public void onClick(DialogInterface dialog, int which) {                         dialog.cancel();                     }                  }).show();       }



更多相关文章

  1. 浅谈Java中Collections.sort对List排序的两种方法
  2. Python list sort方法的具体使用
  3. python list.sort()根据多个关键字排序的方法实现
  4. Android(安卓)SDK下载和更新失败的解决方法
  5. Android线程之消息机制(Handler、MessageQueue、Looper、Thread)
  6. 教你如何开关Android的APN网络
  7. Eclipse build Android时不生成apk问题解决方法
  8. 在android中显示网络图片及查看页面源代码
  9. Android(安卓)Touch事件传递机制具体解释 上

随机推荐

  1. Android(安卓)-- Wifi启动流程分析
  2. Ubuntu 10.10从零开始建立android 2.2 fr
  3. android天气预报
  4. Android(安卓)开发获取程序启动次数
  5. android技术分析
  6. GifView控件,android显示gif图片
  7. Android(安卓)ApiDemos示例解析(83):Grap
  8. Android之使用传感器获取相应数据
  9. textView 属性总结
  10. 记录关于Gradle : Build Running的解决方