如何在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连接状态。