干货 | 如何用Android Studio完成App检查网络

android studio 下载 | 2018-09-26 13:12

大家好,接下来我会不定期推送一些关于Android Studio开发App的文章,第一次写,有什么建议欢迎私聊。

下面就进入正题吧!

一个App最基本的功能,检查网络和检查更新。

首先是检查网络,在这里我先把Activity类和Utils分类,如下图

我的思路如下:

打开app--判断网络--不可用--弹窗--打开设置。

我们新建一个Java类,命名为NetworkUtil,写一个isNetworkAvailable()方法来判断网络是否可用。

/** * 检查网络是否可用 * @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;}接下来回到SplashActivity,添加下面的方法。

/**     * 启动时判断用户网络是否可用,如不可用,则弹窗让用户设置网络,     * 如网络可用,则检查是否有更新     */    @Override    protected void onStart() { if (!NetworkUtil.isNetworkAvailable(this)) { //网络不可用时弹出设置窗口            showSetNetworkUI(this);        } else { //如果网络可用就检查更新,然后跳到主界面。        } super.onStart();    }@Overrideprotected void onResume() { super.onResume();}当网络不可用时需要弹窗,写一个弹窗的方法。

/** 弹窗、打开设置网络界面*/  public void showSetNetworkUI(final Context context) { // 提示对话框      AlertDialog.Builder builder = new AlertDialog.Builder(context);      builder.setTitle("网络设置提示") .setMessage("网络连接不可用,是否进行设置?") .setPositiveButton("设置", new DialogInterface.OnClickListener() { @Override                  public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub                      Intent 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() { @Override                  public void onClick(DialogInterface dialog, int which) { dialog.dismiss();                      SplashActivity.this.finish();                      System.exit(0);                  } }).show();  }当用户想要退出时,还需增加一个双击退出的功能,也很简单。

/** * 双击退出软件 */@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {// 双击退出软件    if (keyCode == KeyEvent.KEYCODE_BACK) { if (flag == false) { flag = true;            Toast.makeText(getApplicationContext(), "再按一次退出软件",                    Toast.LENGTH_SHORT).show();            new Handler().postDelayed(new Runnable() { @Override                public void run() { flag = false;                } }, 2000);        } else { finish();            System.exit(0);        } } return false;}最后不要忘了在AndroidManifest.xml添加网络权限。

<uses-permission android:name="android.permission.INTERNET" />检查网络的功能就完成了。

回复”检查网络“即可获取【提取码】