我正在寫一個程序,通過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將爲您提供設備的類型和設備支持的服務類型。這對於進一步過濾到實物設備很有用。但最終要連接到你需要的設備,然後獲得它的藍牙地址並連接。 –
請投票或接受答案,如果它有用 –