¿Cómo hacer que Bluetooth sea reconocible para otros dispositivos en Android?

En los dispositivos Android, Bluetooth es un protocolo de red de comunicación que permite que los dispositivos se conecten de forma inalámbrica para intercambiar datos con otros dispositivos Bluetooth. En general, podemos hacer uso de la API de Bluetooth para implementar funcionalidades de Bluetooth, como habilitar o deshabilitar Bluetooth, buscar dispositivos Bluetooth disponibles, conectarse con los dispositivos y administrar la transferencia de datos entre dispositivos dentro del rango. En Android, adaptador BluetoothLa clase realiza todas las actividades relacionadas con Bluetooth. De manera predeterminada, el dispositivo Bluetooth está en un modo no detectable. Esto significa que si encendemos el Bluetooth en un dispositivo, solo es visible para aquellos emparejados anteriormente con él. Este dispositivo es invisible en dispositivos que no sean los emparejados. Para hacer que este dispositivo sea visible, activamos la opción Visible, que hace que el dispositivo sea global a su vecindad. Este dispositivo ahora aparece en todas las listas, ya sean los dispositivos nuevos o los emparejados anteriormente. Las aplicaciones que involucran el emparejamiento de un dispositivo de música o un reloj digital (sincronización mediante transferencias Bluetooth) con otros dispositivos son bastante simples. Estos dispositivos se configuran globalmente y cualquier otro dispositivo puede descubrirlos. Para que esto sea posible en un móvil Android, uno puede ir a la configuración de Bluetooth y hacerlo global o reconocible.kotlin

Make Bluetooth Discoverable to Other Devices

Implementación

  • La aplicación explicada en este artículo es básicamente para probar si podemos invocar métodos mediante programación para cumplir con nuestro propósito.
  • Creamos una aplicación móvil Android que consta de tres botones; Activar, Visible y Desactivar , haciendo que las funcionalidades invoquen varios métodos de adaptador Bluetooth.
  • Los cambios de esta aplicación son globales, es decir, Bluetooth continuará encendido si no se hace clic en el botón Apagar, o cualquier otra versión relacionada.
  • Para que el dispositivo sea reconocible en la lista de otros dispositivos, se debe inicializar una nueva actividad mediante startActivityForResult(intent, int) con la intención ACTION_REQUEST_DISCOVERABLE .

Nota: Es importante que el Bluetooth esté presente y en un modo de encendido para que sea detectable.

Implementación paso a paso

Para mostrar programáticamente una lista de dispositivos emparejados con Bluetooth contra nuestro dispositivo en Android, siga los siguientes pasos:

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: Trabajando con el archivo AndroidManifest.xml

Vaya al archivo AndroidManifest.xml y agregue estos permisos requeridos por el adaptador Bluetooth: BLUETOOTH, BLUETOOTH_ADMIN y ACCESS_COARSE_LOCATION

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

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

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

AndroidManifest.xml

XML

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="org.geeksforgeeks.bluetoothdiscoverable">
  
    <!--Permissions Required for accessing Bluetooth services-->
    <uses-permission android:name="android.permission.BLUETOOTH"/>
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
  
  <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

Ahora vaya al archivo activity_main.xml que representa la interfaz de usuario de la aplicación. Cree tres botones , uno para encender el Bluetooth del dispositivo, otro para hacer que el Bluetooth del dispositivo sea detectable en otros dispositivos y otro para apagar el servicio Bluetooth. actividad_principal.xml

XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="10dp"
    android:paddingRight="10dp">
  
    <!--Turn ON Button-->
    <Button
        android:id="@+id/btnOn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@id/btnDiscoverable"
        android:text="Turn ON" />
  
    <!--Discoverable Button-->
    <Button
        android:id="@+id/btnDiscoverable"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:text="Discoverable" />
  
    <!--Turn OFF Button-->
    <Button
        android:id="@+id/btnOFF"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/btnDiscoverable"
        android:text="Turn OFF" />
  
</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

import android.bluetooth.BluetoothAdapter
import android.content.Intent
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)
  
        // Declare the three buttons from the layout file
        val btnOn = findViewById<Button>(R.id.btnOn)
        val btnOff = findViewById<Button>(R.id.btnOFF)
        val btnDisc = findViewById<Button>(R.id.btnDiscoverable)
  
        // Initialize the Bluetooth Adapter
        val bAdapter = BluetoothAdapter.getDefaultAdapter()
  
        // Action when Turn ON Button is clicked
        btnOn.setOnClickListener {
  
            // If Bluetooth support or API is absent or private in the device
            if (bAdapter == null) {
                Toast.makeText(applicationContext, "Bluetooth Not Supported", Toast.LENGTH_SHORT).show()
            } else {
  
                // Turn ON the Bluetooth using an Intent and making a Toast Message
                if (!bAdapter.isEnabled) {
                    startActivityForResult(Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE), 1)
                    Toast.makeText(applicationContext, "Bluetooth Turned ON", Toast.LENGTH_SHORT).show()
                }
            }
        }
  
        // Action when Turn OFF Button is clicked
        btnOff.setOnClickListener {
            // Disable the Bluetooth Adapter and make a Toast
            bAdapter!!.disable()
            Toast.makeText(applicationContext, "Bluetooth Turned OFF", Toast.LENGTH_SHORT).show()
        }
  
        // Action when Discoverable Button is clicked
        btnDisc.setOnClickListener {
            // Make the Bluetooth in a Discovering State and make a Toast
            if (!bAdapter!!.isDiscovering) {
                startActivityForResult(Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE), 1)
                Toast.makeText(applicationContext, "Making Device Discoverable", Toast.LENGTH_SHORT).show()
            }
        }
    }
}

Salida: ejecutar en dispositivo físico

La secuencia de eventos de entrada en el video de salida es:

  1. Haga clic en ON (para encender el Bluetooth y comprobar si el botón funciona)
  2. Haga clic en APAGADO (para apagar el Bluetooth y verificar si el botón funciona)
  3. Encienda el clic (encienda el Bluetooth nuevamente)
  4. Clic reconocible (hacer que el Bluetooth del dispositivo sea reconocible)
  5. Apague el clic (apague el Bluetooth)

Establecer tiempo de descubrimiento personalizado

De forma predeterminada, el dispositivo permanece en modo Descubrir durante 120 segundos . Podemos cambiar este valor proporcionando un valor específico a la intención usando putExtra:

Kotlin

startActivityForResult(Intent
                       (BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE)
                       .putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 40)
                       , 1)

Esto cambia el valor predeterminado a 40 segundos .

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 *