El sensor de proximidad es uno de los sensores en los dispositivos móviles que usamos casi a diario. Este sensor está presente en la sección superior de su teléfono. El sensor se utiliza para detectar la presencia de cualquier objeto en las proximidades del teléfono. Este sensor se usa en muchas aplicaciones de llamadas cuando el usuario mantiene su teléfono en sus oídos para escuchar y luego la pantalla se apaga automáticamente para evitar eventos de toque de pantalla innecesarios durante la llamada. En este artículo, veremos cómo usar Proximity Senor en Android usando Kotlin.
Nota : si está buscando implementar el sensor de proximidad en su aplicación de Android usando Java. Consulte el siguiente artículo: Cómo usar el sensor de proximidad en Android usando Java
Implementación paso a paso
Paso 1: crea un nuevo proyecto en Android Studio
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: Agregue permisos para usar el sensor de proximidad en nuestra aplicación de Android
Vaya a app>manifest>AndroidManifest.xml y agregue el siguiente permiso en la sección de manifiesto.
XML
<uses-permission android:name="android.hardware.sensor.proximity"/>
Paso 3: trabajar con el archivo activity_main.xml
Vaya a la aplicación > res > diseño > actividad_principal.xml y agregue el siguiente código a ese archivo. 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:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <!--on below line we are creating a text for heading of our app--> <TextView android:id="@+id/idTVHeading" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="8dp" android:gravity="center" android:padding="4dp" android:text="QR Code Generator" android:textAlignment="center" android:textColor="@color/purple_200" android:textSize="18sp" android:textStyle="bold" /> <!--Text view to display sensor status--> <TextView android:id="@+id/idTVSensorStatus" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_centerInParent="true" android:gravity="center" android:textAlignment="center" android:textColor="@color/black" android:textSize="50dp" /> </RelativeLayout>
Paso 4: trabajar con el archivo MainActivity.kt
Vaya al archivo MainActivity.kt y consulte el siguiente código. 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
package com.gtappdevelopers.kotlingfgproject import android.content.Context import android.hardware.Sensor import android.hardware.SensorEvent import android.hardware.SensorEventListener import android.hardware.SensorManager import android.os.Bundle import android.widget.TextView import android.widget.Toast import androidx.appcompat.app.AppCompatActivity class MainActivity : AppCompatActivity() { // on below line we are creating // a variable for our text view. lateinit var sensorStatusTV: TextView // on below line we are creating // a variable for our proximity sensor lateinit var proximitySensor: Sensor // on below line we are creating // a variable for sensor manager lateinit var sensorManager: SensorManager override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // on below line we are initializing our all variables. sensorStatusTV = findViewById(R.id.idTVSensorStatus) // on below line we are initializing our sensor manager sensorManager = getSystemService(Context.SENSOR_SERVICE) as SensorManager // on below line we are initializing our proximity sensor variable proximitySensor = sensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY) // on below line we are checking if the proximity sensor is null if (proximitySensor == null) { // on below line we are displaying a toast if no sensor is available Toast.makeText(this, "No proximity sensor found in device..", Toast.LENGTH_SHORT).show() finish() } else { // on below line we are registering // our sensor with sensor manager sensorManager.registerListener( proximitySensorEventListener, proximitySensor, SensorManager.SENSOR_DELAY_NORMAL ) } } // calling the sensor event class to detect // the change in data when sensor starts working. var proximitySensorEventListener: SensorEventListener? = object : SensorEventListener { override fun onAccuracyChanged(sensor: Sensor, accuracy: Int) { // method to check accuracy changed in sensor. } override fun onSensorChanged(event: SensorEvent) { // check if the sensor type is proximity sensor. if (event.sensor.type == Sensor.TYPE_PROXIMITY) { if (event.values[0] == 0f) { // here we are setting our status to our textview.. // if sensor event return 0 then object is closed // to sensor else object is away from sensor. sensorStatusTV.text = "Object is Near to sensor" } else { // on below line we are setting text for text view // as object is away from sensor. sensorStatusTV.text = "Object is Away from sensor" } } } } }
Ahora ejecute su aplicación para ver el resultado.
Producción:
Publicación traducida automáticamente
Artículo escrito por chaitanyamunje y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA