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

Una estación de acoplamiento es un dispositivo competente para comunicarse con el kernel de Android para activar eventos relacionados con el acoplamiento y revisar el estado del archivo de acoplamiento. Una estación de acoplamiento puede hacer que el sistema y las aplicaciones hagan cualquier cosa que esté programada. Un ejemplo muestra un diseño diferente en el estado acoplado. También puede abrir una aplicación de reproductor de música, reproducir música automáticamente en el modo de escritorio si está programado como tal, abrir una aplicación de mapa/navegación en el modo de automóvil, etc. El modo de base es diferente en diferentes teléfonos, pero a menudo convierte su teléfono en un reloj de escritorio, visor de diapositivas de fotos o reproductor de música. También puede configurarlo como altavoz cuando recibe llamadas. La base está integrada en altavoces autoamplificados o cajas de música, o es una unidad independiente que se conecta a través de USB a una computadora, cargador o equipo de cine en casa. Algunas bases usan USB para cargar y Bluetooth para reproducir música. Este modo es una función que se puede detectar en algunos teléfonos, incluidos muchos de los teléfonos Samsung, pero no se detecta en todos los teléfonos ni en todas las versiones de un teléfono. Por ejemplo,Samsung Galaxy S2, S3 y S4 tienen un modo de base , pero el S5 no . Verifique las características de su teléfono para asegurarse de que su teléfono esté equipado con el modo de base. Entonces, en este artículo, analicemos cómo verificar si el dispositivo Android está en estado de acoplamiento o no, o cualquier otra cosa.

PasosCompruebe si el dispositivo Android está en estado de base

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

Vaya al archivo activity_main.xml , que representa la interfaz de usuario de la aplicación. Cree un botón, que al hacer clic proporciona el estado de acoplamiento del dispositivo. A continuación se muestra el código para el  archivo activity_main.xml .

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">
  
    <!--Button to check the Dock state-->
    <Button
        android:id="@+id/btnCheck"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="check" />
  
</RelativeLayout>

Paso 3: trabajar con el archivo MainActivity.kt

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.content.Intent
import android.content.Intent.EXTRA_DOCK_STATE
import android.content.IntentFilter
import android.os.Bundle
import android.widget.Button
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)
  
        // Button which onclick gives dock info in the form of a Toast
        val btn = findViewById<Button>(R.id.btnCheck)
        btn.setOnClickListener {
  
            // 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(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
  
            // Finally depending upon the isDocked value display the Toasts
            if (isDocked) {
                Toast.makeText(applicationContext, "Docked", Toast.LENGTH_SHORT).show()
            } else {
                Toast.makeText(applicationContext, "Not Docked", Toast.LENGTH_SHORT).show()
            }
        }
    }
}

Producción

Según el estado, la aplicación muestra mensajes Toast, «Acoplado» cuando el dispositivo está acoplado o «No acoplado» en caso contrario. La salida no está disponible, pero esta es la versión estándar de extracción del estado del puerto en Android. Tenga en cuenta que los dispositivos Android se pueden acoplar en varios tipos de muelles. Estos incluyen bases para automóviles o para el hogar y bases digitales versus analógicas. El estado de la base suele estar estrechamente relacionado con el estado de carga, ya que muchas bases proporcionan energía a los dispositivos acoplados.

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 *