博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 检测网络连接状态(转)
阅读量:6687 次
发布时间:2019-06-25

本文共 3713 字,大约阅读时间需要 12 分钟。

转自:http://blog.csdn.net/sunboy_2050/article/details/7896313

Android连接网络的时候,并不是每次都能连接到网络,因此在程序启动中需要对网络的状态进行判断,如果没有网络则提醒用户进行设置。

首先,要判断网络状态,需要有相应的权限,下面为权限代码(AndroidManifest.xml):

 

 

然后,检测网络状态是否可用

/**  * 对网络连接状态进行判断  * @return  true, 可用; false, 不可用  */  private boolean isOpenNetwork() {      ConnectivityManager connManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);    NetworkInfo networkInfo = connManager.getActiveNetworkInfo();     if(networkInfo!= null) {
    //2.获取当前网络连接的类型信息
        
int 
networkType = networkInfo.getType();
        
if
(ConnectivityManager.TYPE_WIFI == networkType){
        
//当前为wifi网络
     
}
else
 
if
(ConnectivityManager.TYPE_MOBILE == networkType){
        //当前为mobile网络
    }
return connManager.getActiveNetworkInfo().isAvailable(); }
 
return false;  }

最后,不可用则打开网络设置

/**  * 访问百度主页,网络不可用则需设置  */  private void initMoreGames() {      String URL_MOREGAMES = "http://www.baidu.com";      mWebView = (WebView) findViewById(R.id.view_gamesort);        if (mWebView != null) {          mWebView.requestFocus();          WebSettings webSettings = mWebView.getSettings();          if (webSettings != null) {              webSettings.setJavaScriptEnabled(true);              webSettings.setCacheMode(MODE_PRIVATE);              webSettings.setDefaultTextEncodingName("utf-8");          }            // 判断网络是否可用          if(isOpenNetwork() == true) {              mWebView.loadUrl(URL_MOREGAMES);          } else {              AlertDialog.Builder builder = new AlertDialog.Builder(MoreGamesActivity.this);              builder.setTitle("没有可用的网络").setMessage("是否对网络进行设置?");                            builder.setPositiveButton("是", new DialogInterface.OnClickListener() {                  @Override                  public void onClick(DialogInterface dialog, int which) {                      Intent intent = null;                                            try {                          String sdkVersion = android.os.Build.VERSION.SDK;                          if(Integer.valueOf(sdkVersion) > 10) {                              intent = new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS);                          }else {                              intent = new Intent();                              ComponentName comp = new ComponentName("com.android.settings", "com.android.settings.WirelessSettings");                              intent.setComponent(comp);                              intent.setAction("android.intent.action.VIEW");                          }                          MoreGamesActivity.this.startActivity(intent);                      } catch (Exception e) {                          Log.w(TAG, "open network settings failed, please check...");                          e.printStackTrace();                      }                  }              }).setNegativeButton("否", new DialogInterface.OnClickListener() {                  @Override                  public void onClick(DialogInterface dialog, int which) {                      dialog.cancel();                              finish();                  }              }).show();          }      } else {          Log.w(TAG, "mWebView is null, please check...");      }  }

 

转自http://hi.baidu.com/janksenhu/item/a0042347d7161eaedf2a9fa6

 

"MOBILE";//移动数据连接,不能与连接共存,如果wifi打开,则自动关闭

"WIFI";//wifi服务,当激活时,默认情况下,所有的数据流量将使用此连接。

"MOBILE_MMS";//运营商的多媒体消息服务

"MOBILE_SUPL";//平面定位特定移动数据连接

"MOBILE_DUN";//网络桥接,很老的一个网络

"MOBILE_HIPRI";//高优先级的移动数据连接。相同的为{TYPE_MOBILE},但路由的设置是不同的。只有请求的进程将有机会获得移动的DNS服务器。

"WIMAX";//全球互通微波存取数据连接

"BLUETOOTH";//蓝牙

"DUMMY";//虚拟连接

"ETHERNET";//以太网 

"MOBILE_FOTA";

"MOBILE_IMS";

"MOBILE_CBS";

"WIFI_P2P";//通过wifi直连wifi

转载于:https://www.cnblogs.com/pengyingh/articles/4791774.html

你可能感兴趣的文章
关于日期处理的工具类
查看>>
java注解 声明
查看>>
【编译打包】httpsqs-1.7-2.el6.src.rpm
查看>>
产品聚焦和市场细分
查看>>
linux下IPTABLES的一些配置
查看>>
Python虚拟环境:Vitualenv
查看>>
反思~~~~~~思绪有点乱
查看>>
jdk提供的并发容器
查看>>
Windows 8企业部署系列之(二)
查看>>
linux终端乱码解决方法
查看>>
Mybatis批量更新和插入数据
查看>>
ubuntu16.04安装php5
查看>>
lamp整合三连发(1)
查看>>
C#前台线程和后台线程
查看>>
spring学习笔记一
查看>>
参加51CTO学院软考培训,我通过啦
查看>>
维护机房里的电脑要掌握哪些知识
查看>>
利用 VMware 技术构建超融合平台 第 1 部分
查看>>
ONOS系统架构之高可用实现方案的演进
查看>>
windows 2008 修改ilo密码
查看>>