如何在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连接状态。
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C编程
C++
C#
MongoDB
MySQL
Javascript
PHP