如何在Android上查看Wi-Fi是否已连接?


介绍

在Android应用程序中,很多时候都会进行API调用。要进行此API调用,设备必须连接到互联网。大多数应用程序在进行任何API调用之前,都会确保设备已连接到互联网。此外,当应用程序下载一些大型文件时,应用程序通常会检查设备是否已连接到Wi-Fi。在本文中,我们将了解如何从我们的Android应用程序中查看Android设备是否已连接到Wi-Fi。

实现

我们将创建一个简单的项目,其中我们将显示一个简单的TextView来显示应用程序的标题。之后,我们将创建一个按钮。我们将使用此按钮来检查应用程序中当前的Wi-Fi状态,即Wi-Fi是否已连接。

步骤1:在Android Studio中创建一个新项目。

导航到Android Studio,如下面的屏幕所示。在下面的屏幕中,单击“新建项目”以创建一个新的Android Studio项目。

单击“新建项目”后,您将看到下面的屏幕。

在此屏幕中,我们只需选择“空活动”并单击“下一步”。单击“下一步”后,您将看到下面的屏幕。

在此屏幕中,我们只需指定项目名称。然后,包名将自动生成。

注意 - 确保选择Java作为语言。

指定所有详细信息后,单击“完成”以创建一个新的Android Studio项目。

项目创建完成后,我们将看到两个打开的文件,即activity_main.xml和MainActivity.java文件。

步骤3:使用activity_main.xml

导航到activity_main.xml。如果此文件不可见,则要打开此文件,请在左侧窗格中导航到app>res>layout>activity_main.xml以打开此文件。打开此文件后,将以下代码添加到其中。代码中添加了注释以详细了解。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:app="http://schemas.android.com/apk/res-auto"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:orientation="vertical"
   tools:context=".MainActivity">

   <!-- on below line creating a text view for displaying a heading-->
   <TextView
      android:id="@+id/idTVHeading"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:layout_centerInParent="true"
      android:layout_margin="10dp"
      android:padding="4dp"
      android:text="Check Wi-Fi Connection Status in Android"
      android:textAlignment="center"
      android:textColor="@color/black"
      android:textSize="20sp"
      android:textStyle="bold" />

   <!-- on below line creating a button to check wifi status-->
   <Button
      android:id="@+id/idBtnCheckWifiStatus"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:layout_below="@id/idTVHeading"
      android:layout_centerHorizontal="true"
      android:layout_margin="20dp"
      android:text="Check Wi-Fi Status"
      android:textAllCaps="false" />
</RelativeLayout>

说明 - 在上面的代码中,我们创建了一个RelativeLayout作为根布局,并在其中创建了一个简单的TextView来显示应用程序的标题。之后,我们创建了一个按钮,我们将使用它来检查设备的当前Wi-Fi状态。

步骤4:使用MainActivity.java文件。

导航到MainActivity.java。如果此文件不可见,则要打开此文件,请在左侧窗格中导航到app>res>layout>MainActivity.java以打开此文件。打开此文件后,将以下代码添加到其中。代码中添加了注释以详细了解。

package com.example.androidjavaapp;

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

   // on below line we are creating variable for button.
   private Button checkWifiBtn;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      // on below line initializing variable with id.
      checkWifiBtn = findViewById(R.id.idBtnCheckWifiStatus);
      // on below line adding click listener for our button.
      checkWifiBtn.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            // on below line we are creating a variable for connectivity manager and initializing it.
            ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
            // on below line we are getting network info to get wifi network info.
            NetworkInfo wifiConnection = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
            // on below line displaying toast message when wi-fi is connected when wi-fi is disconnected
            if (wifiConnection.isConnected()) {
                  Toast.makeText(MainActivity.this, "Wi-Fi is connected..", Toast.LENGTH_SHORT).show();
               } else {
               Toast.makeText(MainActivity.this, "Wi-Fi is disconnected..", Toast.LENGTH_SHORT).show();
            }

         }
      });
   }
}

说明 - 在上面的代码中,我们首先为按钮创建了一个变量。之后,我们将看到一个onCreate方法,在其中我们将初始化在应用程序首次打开时要显示的布局文件。在此onCreate方法中,我们使用其ID初始化了按钮。之后,我们为按钮添加了一个OnClickListener。在按钮的ClickListener中,我们使用ConnectivityManager和NetworkInfo检查Wi-Fi连接状态。之后,我们在Wi-Fi连接或断开连接时显示Toast消息。

添加上述代码后,我们只需单击顶部的绿色图标即可在移动设备上运行应用程序。

注意 - 确保您已连接到您的真实设备或模拟器。

输出

结论

在上面的教程中,我们了解了如何使用ConnectivityManager和NetworkInfo从我们的Android应用程序中检查设备的Wi-Fi连接状态。

更新于: 2023年3月30日

1K+ 浏览量

开启你的职业生涯

通过完成课程获得认证

开始学习
广告