如何获取蓝牙配对设备的设备名称?

Posted

技术标签:

【中文标题】如何获取蓝牙配对设备的设备名称?【英文标题】:How get the device name of bluetooth paired devices? 【发布时间】:2019-05-20 18:59:42 【问题描述】:

我在获取蓝牙设备的名称时遇到了一些问题。

我正在连接名称为 MTP-3 的蓝牙打印机(此名称是硬代码),但我想连接另一台具有其他名称的蓝牙打印机,因此我更改了第二台打印机的名称设置中操作系统的配对设备列表,但它不起作用。

另外,如果我将第一台打印机的名称更改为 MTP-3 以外的名称,打印机仍会与我的应用程序连接。

我正在寻找一种方法,即使我使用操作系统更改了名称,也可以为我提供与 android 配对的设备的确切名称。

  Set<BluetoothDevice> pairedDevice = bluetoothAdapter.getBondedDevices();

            if (pairedDevice.size() > 0) 
                for (BluetoothDevice pairedDev : pairedDevice) 

    if(pairedDev.getName.equals("MTP-3"))
          bluetoothDevice = pairedDev;
          Toast.makeText(getApplicationContext(), "found it", Toast.LENGTH_SHORT).show();
          break;
    


【问题讨论】:

【参考方案1】:

下面的代码会获取蓝牙名称,如果没有名称,则返回地址。

public String getDeviceName()
    if(mBluetoothAdapter == null)
        mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
    
    String name = mBluetoothAdapter.getName();
    if(name == null)
        System.out.println("Name is null!");
        name = mBluetoothAdapter.getAddress();
    
    return name;

【讨论】:

【参考方案2】:

你可以从返回的集合中得到它:

BluetoothAdapter mBluetoothAdapter =BluetoothAdapter.getDefaultAdapter();
Set<BluetoothDevice> pairedDevices = mBluetoothAdapter.getBondedDevices();

【讨论】:

以上是关于如何获取蓝牙配对设备的设备名称?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 BluetoothHeadset API 获取蓝牙连接的设备

IOS:如何检测配对蓝牙 3.0 设备的品牌/型号?

在 UWP 中获取已知蓝牙设备的 COM 端口名称

HarmonyOS Sample 之 Bluetooth 传统蓝牙的使用

无需配对即可获取设备位置的蓝牙库

如何在 iPhone 上获取已配对的蓝牙耳机列表?