我正在写一个程序,通过rfcomm与外部附件进行通话。 我的问题是,我不知道识别我的设备的正确方法是什么。 我现在做的方式是这样的:Android上的蓝牙 - 如何连接到正确的蓝牙设备?
Set<BluetoothDevice> pairedDevices = mBluetoothAdapter
.getBondedDevices();
for (BluetoothDevice device : pairedDevices) {
if (device.getName().equals(MY_DEVICE_NAME)) {
this.myDevice = device;
break;
}
}
但是,这种方法依赖于这对我来说似乎是肮脏和坏:) 有没有更好的方式来做到这一点的设备的名称? 我试过看BluetoothDevice的所有方法,但似乎没有任何帮助 - 名称真的是最好的方法吗? 我看到有些地方的人说,我应该使用的UUID,但用来打开插座的设备,一旦我有它:
_socket = myDevice.createRfcommSocketToServiceRecord(MY_UUID);
有没有更好的办法做到这一点?
我试图连接到一个特定类别的设备(让我们说一个特定型号的jabra耳机),所以地址是事先不知道的。我在想像device.getBluetoothClass(),但我不知道它是如何工作的... – ekatz
getBluetoothClass将为您提供设备的类型和设备支持的服务类型。这对于进一步过滤到实物设备很有用。但最终要连接到你需要的设备,然后获得它的蓝牙地址并连接。 –
请投票或接受答案,如果它有用 –