¿Cómo mostrar dispositivos emparejados con Bluetooth mediante programación en Android?

La tecnología Bluetooth es un enlace de tecnología inalámbrica de baja potencia y alta velocidad diseñado para conectar dispositivos como teléfonos u otros equipos portátiles. Tiene una especificación (IEEE 802.15.1) para comunicaciones de radio de baja potencia para vincular computadoras, teléfonos y otros dispositivos de red en una distancia corta de manera inalámbrica. Las señales de Bluetooth cubren distancias, normalmente hasta 10 metros o 30 pies . Bluetooth admite la banda de frecuencias de 2,45 GHz y puede admitir hasta 721 kbps junto con tres canales de voz. Esta banda de frecuencias ha sido apartada por un acuerdo internacional para usar dispositivos industriales, científicos y médicos (ISM).rd, compatible con dispositivos 1.0. Bluetooth es capaz de conectar hasta“ocho dispositivos” a la vez. Cada dispositivo ofrece una dirección única de 48 bits del estándar IEEE 802 . La especificación Bluetooth define y admite una variedad de conexiones de red Bluetooth. De esta manera, la red Bluetooth puede ser una forma notablemente flexible de un sistema inalámbrico para diversas aplicaciones de corto alcance. A través de este artículo, queremos compartir con usted la implementación de una aplicación que muestra una lista de dispositivos emparejados con Bluetooth junto con sus MAC ID. qué artículo. Tenga en cuenta que vamos a implementar este proyecto utilizando el lenguaje Java y Kotlin  . 

Display Bluetooth Paired devices

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: trabajar 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”/>

A continuación se muestra el código completo del  archivo AndroidManifest.xml .

XML

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="org.geeksforgeeks.bluetoothpairedlist">
    
    <!--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 un diseño que muestre la lista emparejada de dispositivos Bluetooth junto con sus direcciones MAC y un botón para buscarlos. 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"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
  
    <!--Button will perform a task to fetch the 
        list of paired Bluetooth Devices-->
    <Button
        android:id="@+id/btnGet"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:text="Get Paired Devices" />
  
    <!--A layout to display 2 text views, one consisting 
        of names and the other displaying their mac ids-->
    <RelativeLayout
        android:id="@+id/info"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/btnGet"
        android:layout_centerHorizontal="true">
  
        <!--Paired devices name-->
        <TextView
            android:id="@+id/nameTv"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
  
        <!--Paired devices mac ID-->
        <TextView
            android:id="@+id/macAddressTv"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@id/nameTv" />
  
    </RelativeLayout>
</RelativeLayout>

Paso 4: trabajar con el archivo MainActivity

Vaya al archivo MainActivity y consulte el siguiente código. A continuación se muestra el código para el  archivo MainActivity . Se agregan comentarios dentro del código para comprender el código con más detalle. 

Kotlin

import android.bluetooth.BluetoothAdapter
import android.os.Build
import android.os.Bundle
import android.widget.Button
import android.widget.TextView
import android.widget.Toast
import androidx.annotation.RequiresApi
import androidx.appcompat.app.AppCompatActivity
  
class MainActivity : AppCompatActivity() {
    @RequiresApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Declaring the textView for name from the layout file
        val tvName = findViewById<TextView>(R.id.nameTv)
  
        // Declaring the textView for MAC ID from the layout file
        val tvMac = findViewById<TextView>(R.id.macAddressTv)
  
        // Declaring the button from the layout file
        val btn = findViewById<Button>(R.id.btnGet)
  
        // Initializing the Bluetooth Adapter
        val bAdapter = BluetoothAdapter.getDefaultAdapter()
  
        // Button Action when clicked
        btn.setOnClickListener {
  
            // Checks if Bluetooth Adapter is present
            if (bAdapter == null) {
                Toast.makeText(applicationContext, "Bluetooth Not Supported", Toast.LENGTH_SHORT).show()
            } else {
                // Arraylist of all the bonded (paired) devices
                val pairedDevices = bAdapter.bondedDevices
                if (pairedDevices.size > 0) {
                    for (device in pairedDevices) {
  
                        // get the device name
                        val deviceName = device.name
  
                        // get the mac address
                        val macAddress = device.address
  
                        // append in the two separate views
                        tvName.append("$deviceName\n")
                        tvMac.append("$macAddress\n")
                    }
                }
            }
        }
    }
}

Java

import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import java.util.Set;
  
public class MainActivity extends AppCompatActivity {
  
    TextView tvName, tvMac;
    Button btn;
    BluetoothAdapter bAdapter;
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
  
        // Declaring the textView for name from the layout file
        tvName = (TextView) findViewById(R.id.nameTv);
  
        // Declaring the textView for MAC ID from the layout file
        tvMac = (TextView) findViewById(R.id.macAddressTv);
  
        // Declaring the button from the layout file
        btn = (Button) findViewById(R.id.btnGet);
  
        // Initializing the Bluetooth Adapter
        bAdapter = BluetoothAdapter.getDefaultAdapter();
  
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                // Checks if Bluetooth Adapter is present
                if (bAdapter == null) {
                    Toast.makeText(getApplicationContext(), "Bluetooth Not Supported", Toast.LENGTH_SHORT).show();
                } else {
                    // List all the bonded devices(paired)
                    Set<BluetoothDevice> pairedDevices = bAdapter.getBondedDevices();
                    if (pairedDevices.size() > 0) {
                        for (BluetoothDevice device : pairedDevices) {
  
                            // get the device name
                            String deviceName = device.getName();
  
                            // get the mac address
                            String macAddress = device.getAddress();
  
                            // append in the two separate views
                            tvName.append(deviceName + "\n");
                            tvMac.append(macAddress + "\n");
                        }
                    }
                }
            }
        });
    }
}

Salida: ejecutar en dispositivo físico

Nota: Algunos datos están enmascarados para mantener la privacidad.

Display Bluetooth Paired devices

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 *