¿Cómo habilitar/deshabilitar programáticamente Wi-Fi en Android?

En el teléfono Android, es muy fácil habilitar/deshabilitar WiFi usando el ícono de WiFi, pero ¿se ha preguntado cómo hacer esta tarea mediante programación en Android? qué.

Sample WiFi

Pasos para habilitar/deshabilitar Wi-Fi mediante programación 

Paso 1: Crear un nuevo proyecto

Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio . Tenga en cuenta que seleccione Kotlin como lenguaje de programación.

Paso 2: trabajar con el archivo AndroidManifest.xml

Vaya al archivo AndroidManifest.xml y agregue dos permisos de usuario: ACCESS_WIFI_STATE y CHANGE_WIFI_STATE

<usos-permiso android:name=”android.permission.ACCESS_WIFI_STATE”/>

<usos-permiso android:name=”android.permission.CHANGE_WIFI_STATE”/>

A continuación se muestra el código para el  archivo  AndroidManifest.xml .

XML

<?xml version="1.0" encoding="utf-8"?>
<manifest 
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.wifi">
  
    <!--Put the permissions between the manifest and application opening tags-->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
  
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
  
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
  
</manifest>

Paso 3: trabajar con el archivo activity_main.xml

Cuando la configuración esté lista, vaya al archivo activity_main.xml , que representa la interfaz de usuario del proyecto. Cree un botón que cambie el estado de Wi-Fi al hacer clic y un TextView que muestre el estado del estado de Wi-Fi. A continuación se muestra el código para el  archivo activity_main.xml . Se agregan comentarios dentro del código para comprender el código con más detalle.

XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
  
    <!--Changes the state of Wi-Fi on button click-->
    <Button
        android:id="@+id/wifiSwitch"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="Click" />
  
    <!--Displays the state of Wi-Fi on button click-->
    <TextView
        android:id="@+id/tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@id/wifiSwitch"
        android:layout_centerHorizontal="true"
        android:hint="Wifi Status"
        android:textSize="30sp" />
  
</RelativeLayout>

Paso 4: trabajar con el archivo MainActivity.kt

En el archivo MainActivity.kt , declare el botón, TextView y un administrador de Wi-Fi (consulte los códigos). Al configurar los oyentes al hacer clic en el botón, usaríamos el administrador de Wi-Fi para habilitar o deshabilitar el Wi-Fi. A continuación se muestra el código del  archivo MainActivity.kt . Se agregan comentarios dentro del código para comprender el código con más detalle.

Kotlin

import android.net.wifi.WifiManager
import android.os.Build
import android.os.Bundle
import android.widget.Button
import android.widget.TextView
import androidx.annotation.RequiresApi
import androidx.appcompat.app.AppCompatActivity
  
  
class MainActivity : AppCompatActivity() {
    @RequiresApi(Build.VERSION_CODES.LOLLIPOP)
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Declaring Button and TextView
        // 1. Changes the state of Wi-Fi on button click
        // 2. Shows the state of the Wi-Fi
        val btn = findViewById<Button>(R.id.wifiSwitch)
        val textView = findViewById<TextView>(R.id.tv)
  
        // Declaring Wi-Fi manager
        val wifi = applicationContext.getSystemService(WIFI_SERVICE) as WifiManager
  
        // On button Click
        btn.setOnClickListener {
  
            // wifi.isWifiEnabled is a boolean, is Wi-Fi is ON, 
            // it switches down and vice-versa
            wifi.isWifiEnabled = !wifi.isWifiEnabled
  
            // For displaying Wi-fi status in TextView
            if (!wifi.isWifiEnabled) {
                textView.text = "Wifi is ON"
            } else {
                textView.text = "Wifi is OFF"
            }
        }
    }
}

Salida: ejecutar en el emulador

Publicación traducida automáticamente

Artículo escrito por aashaypawar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *