¿Cómo mostrar la lista de sensores presentes en un dispositivo Android mediante programación?

Todos los dispositivos Android producidos en todo el mundo vienen con sensores integrados que miden el movimiento, la orientación y diversas condiciones ambientales. Estos sensores generalmente facilitan la arquitectura de Android al proporcionar los datos del sensor para varias aplicaciones. Por ejemplo, un sensor de temperatura proporciona la temperatura del dispositivo, cuya información podría utilizarse para cerrar algunos servicios no necesarios. Tal sensor es un tipo general, pero en términos generales, los sensores se dividen en tres tipos:

  1. Sensores de movimiento: Los sensores de movimiento miden la aceleración y las fuerzas de rotación a lo largo de los tres ejes xyz. Los sensores de movimiento incluyen acelerómetros, sensores de gravedad, giroscopios y sensores de vector rotacional.
  2. Sensores ambientales: los sensores ambientales miden una variedad de parámetros ambientales, como presión, temperatura ambiente (temperatura ambiente), iluminación (luz que cae sobre el dispositivo) y humedad. Incluyen barómetros, fotómetros y termómetros.
  3. Sensores de posición: los sensores de posición miden la posición física de un dispositivo en el espacio. Incluyen sensores de orientación y magnetómetros.

Sensores generalmente disponibles en un dispositivo Android

En general, cualquier dispositivo Android en o superior a la versión de Android 4.4 (Kitkat) tiene estos sensores presentes en ellos:

  1. Acelerómetro – Sensor de hardware – Sensor de movimiento
  2. Sensor de gravedad : basado en programa (software): datos sin procesar derivados de los sensores de movimiento para el cálculo de gravedad.
  3. Temperatura ambiente – Sensor de hardware – Sensor ambiental
  4. Giroscopio – Sensor de hardware – Sensor de movimiento
  5. Sensor de luz – Sensor de hardware – Sensor ambiental
  6. Sensor de orientación : basado en programa (software): datos sin procesar derivados de los sensores de posición y movimiento
  7. Sensor de proximidad – Sensor de hardware – Sensor de posición

Acercarse

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 y cree un TextView dentro de un ScrollView que enumerará los sensores presentes en el dispositivo. actividad_principal.xml

XML

<?xml version="1.0" encoding="utf-8"?>
<ScrollView
    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">
  
    <!--Text View that shall display the sensor information list-->
    <TextView
        android:id="@+id/tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true" />
  
</ScrollView>

Paso 4: trabajar con el archivo MainActivity.kt

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

Kotlin

import android.content.Context
import android.hardware.Sensor
import android.hardware.SensorManager
import android.os.Bundle
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
  
class MainActivity : AppCompatActivity() {
  
    // Information about Sensors present in the 
    // device is supplied by Sensor Manager of the device
    private lateinit var sensorManager: SensorManager
  
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Initialize the variable sensorManager
        sensorManager = getSystemService(Context.SENSOR_SERVICE) as SensorManager
  
        // getSensorList(Sensor.TYPE_ALL) lists all the sensors present in the device
        val deviceSensors: List<Sensor> = sensorManager.getSensorList(Sensor.TYPE_ALL)
  
        // Text View that shall display this list
        val textView = findViewById<TextView>(R.id.tv)
  
        // Converting List to String and displaying 
        // every sensor and its information on a new line
        for (sensors in deviceSensors) {
            textView.append(sensors.toString() + "\n\n")
        }
    }
}

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 *