Android 检测网络连接状态

Android 检测网络连接状态,第1张

概述Android连接网络的时候,并不是每次都能连接到网络,因此在程序启动中需要对网络的状态进行判断,如果没有网络则提醒用户进行设置。 首先,要判断网络状态,需要有相应的权限,下面为权限代码(AndroidManifest.xml): <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><uses-permission android:name="android.permission.INTERNET"/>  然后,检测网络状态是否可用 [java] view plaincopyprint? /**  * 对网络连接状态进行判断  * @return  true, 可用; false, 不可用  */  private boolean isOpenNetwork() {      ConnectivityManager connManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);      if(connManager.getActiveNetworkInfo() != null) {          return connManager.getActiveNetworkInfo().isAvailable();      }        return false;  }    最后,不可用则打开网络设置 [java] view plaincopyprint? /**  * 访问百度主页,网络不可用则需设置  */  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...");      }  }   运行界面:

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

 

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

 

  

 

 

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

 

[java]         isOpenNetwork() {      ConnectivityManager connManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);      (connManager.getActiveNetworkInfo() != ) {           connManager.getActiveNetworkInfo().isAvailable();      }         ;  }  

 

 

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

 

[java]        initMoreGames() {      String URL_MOREGAMES = ;      mWebVIEw = (WebVIEw) findVIEwByID(R.ID.vIEw_gamesort);         (mWebVIEw != ) {          mWebVIEw.requestFocus();          WebSettings webSettings = mWebVIEw.getSettings();           (webSettings != ) {              webSettings.setJavaScriptEnabled();              webSettings.setCacheMode(MODE_PRIVATE);              webSettings.setDefaultTextEnCodingname();          }                      (isOpenNetwork() == ) {              mWebVIEw.loadUrl(URL_MOREGAMES);          }  {              AlertDialog.Builder builder =  AlertDialog.Builder(MoreGamesActivity.);              builder.setTitle().setMessage();                            builder.setPositivebutton( DialogInterface.OnClickListener() {                                      onClick(DialogInterface dialog,  which) {                      Intent intent = ;                                             {                          String sdkVersion = androID.os.Build.VERSION.SDK;                          (Integer.valueOf(sdkVersion) > ) {                              intent =  Intent(androID.provIDer.Settings.ACTION_WIRELESS_SETTINGS);                          } {                              intent =  Intent();                              Componentname comp =  Componentname();                              intent.setComponent(comp);                              intent.setAction();                          }                          MoreGamesActivity..startActivity(intent);                      }  (Exception e) {                          Log.w(TAG, );                          e.printstacktrace();                      }                  }              }).setNegativebutton( DialogInterface.OnClickListener() {                                      onClick(DialogInterface dialog,  which) {                      dialog.cancel();                              finish();                  }              }).show();          }      }  {          Log.w(TAG, );      }  }  



 

运行界面:

总结

以上是内存溢出为你收集整理的Android 检测网络连接状态全部内容,希望文章能够帮你解决Android 检测网络连接状态所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1149752.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存