¿Cómo determinar el tipo de base actual en Android?

Requisito previo: ¿Cómo verificar si el dispositivo Android está en estado de base?

Se dice que un dispositivo Android está ACOPLADO cuando está conectado a una fuente de alimentación o a un sistema de intercambio medido que involucra la carga y el intercambio de multimedia. El estado de la base está muy relacionado con el estado de carga del dispositivo. Dock State brinda información sobre la carga o el tipo de conexión. Los dispositivos Android son capaces de acoplarse a varios tipos de muelles. Por ejemplo, cuando un dispositivo Android está conectado a un sistema de música como un sistema de música en casa a través de un cable USB compatible, se dice que está ACOPLADO en un escritorio de gama alta. De manera similar, cuando un dispositivo Android está conectado a un cargador de automóvil, está ACOPLADO en un automóvil. Básicamente, hay cuatro tipos diferentes de muelle:

  1. Coche
  2. Escritorio
  3. Escritorio de gama baja (analógico)
  4. Escritorio de gama alta (digital)

Nota: El escritorio de gama baja (analógico) y el escritorio de gama alta (digital) se introdujeron en Android en el nivel de API 11.

  • Base para automóvil: una base para automóvil es un centro de conexión que permite que el dispositivo se cargue y transfiere medios cuando está conectado. 
  • Desk Dock: Desk Dock es una estación de acoplamiento, que es un dispositivo de interfaz que permite que las computadoras portátiles se conecten a otros dispositivos con poco o ningún esfuerzo. Las estaciones de acoplamiento permiten que los dispositivos móviles se conviertan en una computadora de escritorio en la oficina o el hogar.
  • Escritorio de gama baja: estos muelles funcionan con una corriente más baja. Ej.: Bancos de potencia de salida baja (<1 amperio)
  • Escritorio de gama alta: estos muelles funcionan con una corriente más alta. Ej.: cargadores rápidos, bancos de potencia de alto rendimiento (2,1 amperios)

Entonces, en este artículo, determinemos el tipo de base actual en Android. kotlin

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 activity_main.xml

No hay nada que hacer con el archivo activity_main.xml . Así que mantén el archivo como está.

XML

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 
    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="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
  
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
  
</androidx.constraintlayout.widget.ConstraintLayout>

Paso 3: trabajar con el archivo MainActivity.kt

Vaya al archivo MainActivity.kt y consulte el siguiente código. MainActivity.kt

Kotlin

import android.content.Intent
import android.content.IntentFilter
import android.os.Bundle
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
  
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
          
        // The dock-state details are included as an extra in a sticky broadcast of
        // the ACTION_DOCK_EVENT action. Because it's sticky, you can simply call
        // registerReceiver(), passing in null as the broadcast receiver.
        val dockStatus: Intent? = IntentFilter(Intent.ACTION_DOCK_EVENT).let { ifilter ->
            applicationContext.registerReceiver(null, ifilter)
        }
  
        // dockState is an Integer value received when intent is passed
        val dockState: Int = dockStatus?.getIntExtra(Intent.EXTRA_DOCK_STATE, -1) ?: -1
  
        // isDocked is a Boolean value which if true indicates
        // the device is in dock state and vice-versa
        val isDocked: Boolean = dockState != Intent.EXTRA_DOCK_STATE_UNDOCKED
  
        // isCar and isDesk are a Boolean values, 
        // either of which if true indicates
        // the device is in a particular dock
        val isCar: Boolean = dockState == Intent.EXTRA_DOCK_STATE_CAR
        val isDesk: Boolean = dockState == Intent.EXTRA_DOCK_STATE_DESK
                || dockState == Intent.EXTRA_DOCK_STATE_LE_DESK
                || dockState == Intent.EXTRA_DOCK_STATE_HE_DESK
  
        // Output Cases
        when {
            isCar -> Toast.makeText(applicationContext, "Dock CAR", Toast.LENGTH_SHORT).show()
            isDesk -> Toast.makeText(applicationContext, "Dock DESK", Toast.LENGTH_SHORT).show()
            !isDocked -> Toast.makeText(applicationContext, "Not Docked", Toast.LENGTH_SHORT).show()
        }
    }
}

Según el estado, la aplicación muestra mensajes Toast, «Dock CAR» cuando el dispositivo está conectado a un automóvil, «Dock DESK» si está conectado a un escritorio o «Not Docked» en caso contrario. La salida no está disponible, pero esta es la versión estándar de extracción del estado del muelle en Android. 

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 *