Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何从远程设备的属性中获取其蓝牙硬件地址?_Android_Bluetooth_Bluetooth Lowenergy_Android Bluetooth - Fatal编程技术网

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

Android 如何从远程设备的属性中获取其蓝牙硬件地址?,android,bluetooth,bluetooth-lowenergy,android-bluetooth,Android,Bluetooth,Bluetooth Lowenergy,Android Bluetooth,我正在尝试连接到需要该设备的蓝牙硬件地址才能连接的远程设备: bdDevice = mBluetoothAdapter.getRemoteDevice(<bluetooth_hardware_address>); bdDevice = mBluetoothAdapter.getRemoteDevice(<bluetooth_hardware_address>); bdDevice=mBluetoothAdapter.getRemoteDevice(); 如何发现远程

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

bdDevice = mBluetoothAdapter.getRemoteDevice(<bluetooth_hardware_address>);
bdDevice = mBluetoothAdapter.getRemoteDevice(<bluetooth_hardware_address>);
bdDevice=mBluetoothAdapter.getRemoteDevice();
如何发现远程设备的蓝牙地址

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

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

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

bdDevice = mBluetoothAdapter.getRemoteDevice(<bluetooth_hardware_address>);
bdDevice = mBluetoothAdapter.getRemoteDevice(<bluetooth_hardware_address>);
bdDevice=mBluetoothAdapter.getRemoteDevice();
如何发现远程设备的蓝牙地址

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

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

更新:

我可以用下面的代码获取地址,但这并没有给出要匹配的序列号--

String ui\u serial\u number=“00005557F9FC”//我想用这个序列号来连接。
蓝牙适配器;
Set pairedDevices=bluetoothAdapter.getBondedDevices();
用于(蓝牙设备:pairedDevices){
//在这里,您可以使用device.getAddress()获得mac
//但是没有比device.getSerialNumber()更好的了
如果(device.getSerialNumber().equals(ui\u serial\u number))//在这里做什么?
{
//这是我想联系的人。
bdDevice=mBluetoothAdapter.getRemoteDevice(device.getAddress());
打破
}
}

但是没有什么比
device.getSerialNumber()
更能匹配UI中的序列号并进行连接。

当您通过
BluetoothAdapter.startedScan()
扫描BluetoothDevices时,您将在回调中获得所有BluetoothDevices。然后您可以获得每个BluetoothDevice地址
BluetoothDevice.getAddress()

您可以获得一组所有绑定设备:

BluetoothAdapter bluetoothAdapter;
Set<BluetoothDevice> pairedDevices = bluetoothAdapter.getBondedDevices();
for (BluetoothDevice device : pairedDevices) {
    // here you get the mac using device.getAddress()
}
BluetoothAdapter BluetoothAdapter;
Set pairedDevices=bluetoothAdapter.getBondedDevices();
用于(蓝牙设备:pairedDevices){
//在这里,您可以使用device.getAddress()获得mac
}

如果设备已配对,该怎么办?我们可以得到配对设备的序列号并将其与已知的序列号进行匹配吗。如果匹配,则仅连接,否则不连接。@VedPrakash您可以扫描设备,您将获得范围内的所有设备,即使已经绑定。然后你可以得到每个设备的mac地址。在绑定找到的设备,然后作为GATT-client读取数据之前,您无法获取该设备的任何其他数据。对,但我需要将这些配对设备中的每个设备与我已知序列号(而不是地址)的UI中的给定设备进行匹配。如果任何配对设备匹配,则连接其他设备。我们能得到配对设备的序列号来匹配吗?你们不能从设备中得到序列号,你们只能得到MAC地址。它也是独一无二的,别担心)