Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Android

Cách kiểm tra trạng thái kết nối Wi-Fi trên Android

Giới thiệu

Sử dụng ConnectivityManager và NetworkInfo để lấy trạng thái chi tiết của kết nối Wi-Fi (CONNECTED, DISCONNECTED, CONNECTING...).

Các bước thực hiện

Bước 1: Tạo project

Bước 2: Giao diện (activity_main.xml)

<TextView
    android:id="@+id/text"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:textSize="24sp" />

Bước 3: Code (MainActivity.java)

package com.example.myapplication;

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    private TextView textView;

    @RequiresApi(api = Build.VERSION_CODES.N)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        textView = findViewById(R.id.text);

        ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo wifiInfo = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

        if (wifiInfo != null) {
            textView.setText("Trạng thái Wi-Fi: " + wifiInfo.getDetailedState().name());
        } else {
            textView.setText("Wi-Fi không khả dụng");
        }
    }
}

Bước 4: Quyền (AndroidManifest.xml)

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

Các trạng thái phổ biến

  • CONNECTED - Đã kết nối và có internet
  • CONNECTING - Đang kết nối
  • DISCONNECTED - Ngắt kết nối
  • FAILED - Kết nối thất bại

Lưu ý

getNetworkInfo(int) đã deprecated từ API 29. Với Android 10+, hãy dùng NetworkCapabilities và ConnectivityManager.NetworkCallback.