一. BluetoorhServerSocket簡介
1. 繼承關系
public final class BluetoothServerSocket extends Object implements Closeable
繼承了Object類, 實作了Closeable接口;
Closeable是可以關閉的資料源或者目标, 實作該接口必須重寫close()方法, 調用close()方法可以釋放該對象儲存的資源;
2. 該類簡介
使用BluetoothServerSocket可以建立一個監聽服務端口, 使用accept()方法阻塞, 當該方法監測到連接配接的時候, 就會傳回一個BluetoothSocket對象來管理這個連接配接, 例如擷取輸入輸出流等;
RFCOMM端口是最常用的藍牙端口, 該端口是面向連接配接的, 通過這個連接配接進行資料傳輸要遵守序列槽行為規範(Serial Port Profile, SPP);
該類用法 : BluetoothServerSocket對象時BluetoothAdapter對象調用listenUsingRfcommWithServiceRecord()方法, 調用accept()方法該方法就會将程序阻塞, 如果有BluetoothSock調用connect()方法連接配接到這個accept()中, 那個這個accept()方法就會傳回一個BluetoothSocket對象;
調用BluetoothServerSocket方法的close()方法, 會釋放該類占用的資源, 但是該類衍生出的BluetoothSocket對象不會被關閉;
二. 公共方介紹
(1)監聽帶逾時連接配接
public BluetoothSocket accept (int timeout)
作用 : 該方法會阻塞, 知道監聽到一個連接配接, 或者逾時;
參數 : 阻塞時間;
傳回值 : 監聽到的BluetoothSocket連接配接;
(2)監聽連接配接
public BluetoothSocket accept ()
作用 : 阻塞一直到連接配接建立;
傳回值 : 監聽到的BluetoothSocket連接配接;
(3)關閉端口
public void close ()
作用 : 關閉端口, 釋放該端口占用的資源;
注意 : 如果這個端口在其它線程中accept()阻塞, 那麼就會跑出異常, 關閉這個端口不會關閉accept()方法傳回的BluetoothSocket對象;