如何从其属性获取远程设备的蓝牙硬件地址?

时间:2014-05-22 08:33:13

标签: android bluetooth bluetooth-lowenergy android-bluetooth

我正在尝试连接到需要该设备的蓝牙硬件地址才能连接的远程设备:

bdDevice = mBluetoothAdapter.getRemoteDevice(<bluetooth_hardware_address>);

如何发现远程设备的蓝牙地址?

这些是我已经知道的远程设备的参数 - 序列号,设备编号,VIN编号。

在iOS中,这是使用远程设备的属性来获取蓝牙硬件地址,如何在Android上完成。

我正在尝试连接到需要该设备的蓝牙硬件地址才能连接的远程设备:

bdDevice = mBluetoothAdapter.getRemoteDevice(<bluetooth_hardware_address>);

如何发现远程设备的蓝牙地址?

这些是我已经知道的远程设备的参数 - 序列号,设备编号,VIN编号。

在iOS中,这是使用远程设备的属性来获取蓝牙硬件地址,如何在Android上完成。

更新

我可以使用以下代码获取地址,但这并不能提供与之匹配的序列号 -

String ui_serial_number = "000055557F9FC"; //I want to use this SN to connect.
BluetoothAdapter bluetoothAdapter;
Set<BluetoothDevice> pairedDevices = bluetoothAdapter.getBondedDevices();
for (BluetoothDevice device : pairedDevices) {
    // here you get the mac using device.getAddress()

    //But there is nothing like device.getSerialNumber()
    if(device.getSerialNumber().equals(ui_serial_number )) //What to do here?
    {
         //This is the <bluetooth_hardware_address> that I want to connect with.
         bdDevice = mBluetoothAdapter.getRemoteDevice(device.getAddress());   
         break; 
    }
}

但是没有像device.getSerialNumber()那样与UI中的序列号匹配并连接。

2 个答案:

答案 0 :(得分:2)

当您通过BluetoothAdapter.startLeScan()扫描BLE设备时,您将获得回拨中的所有BluetoothDevices。然后,您可以获取每个BluetoothDevice地址BluetoothDevice.getAddress()

答案 1 :(得分:0)

您可以获得一套所有保税设备:

BluetoothAdapter bluetoothAdapter;
Set<BluetoothDevice> pairedDevices = bluetoothAdapter.getBondedDevices();
for (BluetoothDevice device : pairedDevices) {
    // here you get the mac using device.getAddress()
}