BluetoothAdapter:用於描述本地藍牙適配器。允許你運行基本的藍牙任務。例如:初始化設備查找,查找能夠配對的藍牙設備。使用MAC地址實例化一個BluetoothDevice類,並且創建一個BluetoothServerSocket類用於監聽其它設備請求的連接。要得到一個本地的藍牙適配器,可以通過調用getDefaultAdapter()這個靜態方法獲得。基本上,這是你藍牙操作的起始點。一旦你得到本地適配器,你可以通過getBondedDevices()這個方法得到一組可以配對的藍牙設備。你可以通過startDiscovery()來搜索設備,還可以通過BluetoothServerSocket類的listenUsingRfcommWithServiceRecord(String, UUID). 方法來監聽外來的連接請求。
注意:大多數方法需要BLUETOOTH權限,還有一些需要BLUETOOTH_ADMIN權限。
常量:
String ACTION_DISCOVERY_FINISHED 廣播:當適配器完成藍牙設備的搜索過程。
String ACTION_DISCOVERY_STARTED 廣播:當適配器開始藍牙設備的搜索過程。
String ACTION_LOCAL_NAME_CHANGED 廣播:當本地藍牙適配器的設備名被改變。
String ACTION_REQUEST_DISCOVERABLE 活動:顯示系統Activity藍牙搜索模式。
ACTION_REQUEST_ENABLE 活動:顯示系統Activity允許用戶開啓藍牙。
String ACTION_SCAN_MODE_CHANGED 廣播:表明藍牙掃描模式被改變。
String ACTION_STATE_CHANGED 廣播:藍牙狀態被改變。
int ERROR 錯誤標記
String EXTRA_DISCOVERABLE_DURATION 指定藍牙搜索時間的長短。
String EXTRA_LOCAL_NAME 請求本地藍牙設備的名字。
String EXTRA_PREVIOUS_SCAN_MODE 請求之前的藍牙掃描模式。
String EXTRA_PREVIOUS_STATE 請求之前的電源狀態。
String EXTRA_SCAN_MODE 請求當前的掃描模式。
String EXTRA_STATE 請求當前的電源狀態。
int SCAN_MODE_CONNECTABLE 表明查詢掃描被禁用,頁面掃描啓用。
int SCAN_MODE_CONNECTABLE_DISCOVERABLE 表明查詢掃描和頁面掃描都被啓用。
int SCAN_MODE_NONE 表明查詢掃描和頁面掃描都禁用。
int STATE_OFF 表明藍牙關閉。
int STATE_ON 表明藍牙打開。
int STATE_TURNING_OFF 表明藍牙正在關閉。
int STATE_TURNING_ON 表明藍牙正在打開。
方法:
boolean cancelDiscovery() 取消當前藍牙的搜索進程。需要BLUETOOTH_ADMIN權限。
返回值:成功True,失敗False。
public static boolean checkBluetoothAddress (String address) 驗證藍牙地址是否合法。
參數:藍牙地址。字母必須大寫。
返回值:合法True,非法False。
public boolean disable () 關閉藍牙設備。
返回值:成功True,失敗False
public boolean enable () 打開藍牙設備。
返回值:成功True,失敗False。
public String getAddress () 得到本地藍牙地址。
返回值:藍牙的地址字符串。
public Set<BluetoothDevice> getBondedDevices () 得到和本地藍牙綁定的設備
返回值:返回和本地藍牙綁定的BluetoothDevice集合
public static synchronized BluetoothAdapter getDefaultAdapter () 得到本地藍牙適配器句柄。
返回值:本地藍牙適配器對象。
public String getName () 得到本地藍牙的名字。
返回值:藍牙名字符串。
public BluetoothDevice getRemoteDevice (String address) 獲得藍牙設備。
參數:合法的藍牙地址。字母必須大寫。
返回值:BluetoothDevice對象。
public int getScanMode () 獲得藍牙的掃描模式
返回值:掃描模式。
public int getState () 獲得本地藍牙的狀態。
返回值:藍牙狀態。
public boolean isDiscovering () 判斷本地藍牙設備是否在搜索其他設備。
返回值:正在搜索True,其他False。
public boolean isEnabled () 判斷本地藍牙是否已經被打開。
返回值:已經打開True,其他False。
public BluetoothServerSocket listenUsingRfcommWithServiceRecord (String name, UUID uuid) 創建一個監聽器
參數1.SDP record的服務名,2.SDP record的UUID
返回值:具有監聽功能的服務端套接字。
public boolean setName (String name) 設定藍牙名。
參數:藍牙名
返回值:設定成功True,否則False。
public boolean startDiscovery () 開始搜索其他藍牙設備。
返回值:成功True,失敗False。