Android蓝牙获取当前连接的设备

简介

蓝牙是一种无线通信技术,广泛应用于各种设备之间的数据传输。在Android设备中,我们可以通过蓝牙模块与其他蓝牙设备进行通信。本文将介绍如何使用Android的蓝牙API获取当前连接的设备,并提供相应的代码示例。

准备工作

在开始编写代码之前,我们需要确保以下几项准备工作已完成:

  • 在AndroidManifest.xml文件中添加蓝牙权限
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
  • 在布局文件中添加一个按钮,用于触发获取当前连接设备的操作
<Button
    android:id="@+id/btn_get_devices"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="获取当前连接设备" />
  • 在Activity中获取按钮并设置点击事件监听器
Button btnGetDevices = findViewById(R.id.btn_get_devices);
btnGetDevices.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // 在此处执行获取当前连接设备的操作
    }
});

获取当前连接设备

要获取当前连接的设备,我们首先需要通过BluetoothAdapter获取已配对的设备列表,然后从中筛选出连接成功的设备。

以下是获取当前连接设备的代码示例:

// 获取BluetoothAdapter
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();

// 获取已配对的设备列表
Set<BluetoothDevice> pairedDevices = bluetoothAdapter.getBondedDevices();

// 遍历设备列表,查找连接成功的设备
BluetoothDevice connectedDevice = null;
for (BluetoothDevice device : pairedDevices) {
    if (device.getBondState() == BluetoothDevice.BOND_BONDED && device.isConnected()) {
        connectedDevice = device;
        break;
    }
}

// 判断是否找到连接成功的设备
if (connectedDevice != null) {
    String deviceName = connectedDevice.getName();
    String deviceAddress = connectedDevice.getAddress();
    // 在此处处理获取到的设备信息
} else {
    // 未找到连接成功的设备
}

序列图

下面是一个序列图,展示了获取当前连接设备的操作流程:

sequenceDiagram
    participant App
    participant BluetoothAdapter
    participant BluetoothDevice

    App->>BluetoothAdapter: 获取BluetoothAdapter实例
    BluetoothAdapter->>BluetoothAdapter: getDefaultAdapter()
    App->>BluetoothAdapter: 获取已配对设备列表
    BluetoothAdapter->>BluetoothAdapter: getBondedDevices()
    Note left of BluetoothAdapter: 返回已配对的设备列表<br/>Set<BluetoothDevice>
    App->>BluetoothAdapter: 遍历设备列表
    foreach device in BluetoothAdapter
        BluetoothAdapter->>BluetoothDevice: getBondState()
        BluetoothDevice->>BluetoothDevice: isConnected()
        Note left of BluetoothDevice: 判断设备是否连接成功
        alt 连接成功
            BluetoothDevice->>BluetoothAdapter: 返回连接成功的设备
            Note left of BluetoothAdapter: 返回连接成功的设备<br/>BluetoothDevice
        end
    end
    App->>BluetoothAdapter: 处理获取到的设备信息

总结

本文介绍了如何使用Android的蓝牙API获取当前连接的设备。通过获取已配对的设备列表,并判断设备的连接状态,我们可以找到连接成功的设备并获取相应的信息。希望本文对你理解蓝牙设备连接有所帮助。

完整代码示例,请参考以下链接:[GitHub](