有的时候我们的应用可能需要判断当前设备是否联网

 private void init() {
         /** 获得系统级联网管理员对象 */
         ConnectivityManager manager = (ConnectivityManager) this
                 .getSystemService(CONNECTIVITY_SERVICE);
         NetworkInfo info = manager.getActiveNetworkInfo();
         if (info == null) { // 无网情况下
             // 跳转到网络设置页面
             startActivity(new Intent(android.provider.Settings.ACTION_SETTINGS));
         } else { // 有网情况下
             if (info.isAvailable()) { // 网络可用时
                 /** 是手机自带的联网方式 */
                 if (info.getType() == ConnectivityManager.TYPE_MOBILE) {
                     if (info.getState() == State.CONNECTED) {
                         Toast.makeText(
                                 MainActivity.this,
                                 "手机网络可用并已连接" + "\n" + "连接网络方式为:\n"
                                         + info.getType() + ",MOBILE", 1).show();
                     }
                 /** WIFI联网方式 */
                 } else {
                     Toast.makeText(MainActivity.this,
                             "连接网络方式为:" + info.getType() + ",WI-FI", 1).show();
                     startActivity(new Intent(
                             android.provider.Settings.ACTION_WIFI_SETTINGS));
                 }
             } else {
                 Toast.makeText(MainActivity.this, "手机网络不可用", 1).show();
             }
         }
     }

不过最后注意增加以下权限,允许程序访问有关GSM网络信息(Allows applications to accessinformation about networks),不然会报错

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

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-06-02
  • 2022-12-23
  • 2022-01-07
  • 2021-12-15
猜你喜欢
  • 2022-12-23
  • 2021-06-16
  • 2022-12-23
  • 2021-09-01
  • 2021-07-25
  • 2022-01-29
  • 2022-12-23
相关资源
相似解决方案