該類僅繼承了Object類;
BluetoothAdapter代表了移動裝置的本地的藍牙擴充卡, 通過該藍牙擴充卡可以對藍牙進行基本操作, 例如 : 啟動裝置發現(startDiscovery), 擷取已配對裝置(getBoundedDevices), 通過mac藍牙位址擷取藍牙裝置(getRemoteDevice), 從其它裝置建立一個監聽連接配接(listenUsingRfcommWithServiceRecord);
BluetoothAdapter.getDefaultAdapter()該靜态方法可以擷取該擴充卡對象.
android.permission.BLUETOOTH : 允許程式連接配接到已配對的藍牙裝置, 請求連接配接/接收連接配接/傳輸資料需要改權限, 主要用于對配對後進行操作;
android.permission.BLUETOOTH_ADMIN : 允許程式發現和配對藍牙裝置, 該權限用來管理藍牙裝置, 有了這個權限, 應用才能使用本機的藍牙裝置, 主要用于對配對前的操作;
優先級 : BLUETOOTH權限是BLUETOOTH_ADMIN權限的前提, 如果沒有BLUETOOTH權限, 就不能使用BLUETOOTH_ADMIN權限;
藍牙關閉 : int STATE_OFF , 值為10, 藍牙子產品處于關閉狀态;
藍牙打開中 : int STATE_TURNING_ON , 值為11, 藍牙子產品正在打開;
藍牙開啟 : int STATE_ON , 值為12, 藍牙子產品處于開啟狀态;
藍牙開啟中 : int STATE_TURNING_OFF , 值為13, 藍牙子產品正在關閉;
藍牙開關狀态順序 : STATE_OFF --> STATE_TURNING_ON --> STATE_ON --> STATE_TURNING_OFF --> STATE_OFF;
無功能狀态 : int SCAN_MODE_NONE , 值為20, 查詢掃描和頁面掃描都失效, 該狀态下藍牙子產品既不能掃描其它裝置, 也不可見;
掃描狀态 : int SCAN_MODE_CONNECTABLE , 值為21, 查詢掃描失效, 頁面掃描有效, 該狀态下藍牙子產品可以掃描其它裝置, 從可見性來說隻對已配對的藍牙裝置可見, 隻有配對的裝置才能主動連接配接本裝置;
可見狀态 : int SCAN_MODE_CONNECTABLE_DISCOVERABLE, 值為23, 查詢掃描和頁面掃描都有效;
查詢掃描功能 : 其它裝置可以掃描到本裝置 , 指的是可見性可見;
頁面掃描功能 : 可以主動掃描其它裝置;
開始搜尋廣播 : String ACTION_DISCOVERY_STARTED, 藍牙擴充卡開始搜尋遠端裝置, 值為"android.bluetooth.action.DISCOVERY_START", 藍牙擴充卡開始搜尋之後, 會先有12秒的查詢掃描(12s内可見), 查詢掃描後進行頁面掃描(主動搜尋), 需要BLUETOOTH權限;
如果搜尋到藍牙裝置, 就會收到BluetoothDevice.ACTION_FOUND廣播, 可以從Intent中擷取存放在其中的BluetoothDevice對象, intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
裝置查找非常消耗資源, 在查找的過程中, 不能連接配接遠端的藍牙裝置, 已經存在的連接配接也要限制帶寬, 如果想要執行除查找外的其它操作, 之前最好調用cancelDiscovery();
搜尋完成廣播 : String ACTION_DISCOVERY_FINISHED,藍牙S擴充卡完成搜尋發出的廣播, 值為"android.bluetooth.adapter.action.DISCOVERY_FINISHED", 需要BLUETOOTH權限;
藍牙名稱改變廣播 : String ACTION_LOCAL_NAME_CHANGED, 本地的藍牙擴充卡改變了自己的名稱, 值為"android.bluetooth.adapter.action.LOCAL_NAME_CHANGED", 注意改變的是本裝置名稱, 不是遠端裝置的.這個廣播包含一個EXTRA_LOCAL_NAME附加域, 需要BLUETOOTH權限;
掃描模式變化廣播 : String ACTION_SCAN_MODE_CHANGED, 藍牙子產品掃描模式發生了變化, 值為"android.bluetooth.adapter.action.SCAN_MODE_CHANGED", 該Intent對象包含了EXTRA_SCAN_MODE和EXTRA_PREVIOUS_SCAN_MODE, 兩個附加域分别是新的和舊的掃描模式, 這裡可以根據前後掃描模式的不同做出不同的操作, 需要BLUETOOTH權限;
開關模式變化廣播 : String ACTION_STATE_CHANGED, 藍牙子產品被打開或者關閉, 值為"android.bluetooth.adapter.action.STATE_CHANGED", 該廣播的Intent中包含EXTRA_STATE和EXTRA_PREVIOUS_STATE兩個附加域, 需要BLUETOOTH權限;
<a></a>
開啟藍牙 : String ACTION_REQUEST_ENABLE, 打開藍牙, 值為"android.bluetooth.adapter.action.REQUEST_ENABLE",
可以在Activity中的onActivityResult()方法中處理結果, 如果藍牙子產品打開成功, 則傳回結果嗎RESULT_OK; 如果藍牙子產品打開失敗, 則傳回結果碼RESULT_CANCELED;
打開和關閉藍牙子產品, 都可以通過ACTION_STATE_CHANGED廣播來監聽;
藍牙可見 : String ACTION_REQUEST_DISCOVERABLE, 使藍牙可見, 值為"android.bluetooth.adapter.action.REQUEST_DISCOVERABLE", 預設的可見時間為120s, 可以在廣播中添加附加域, 設定任意的可見時間, 附加域為EXTRA_DISCOVERABLE_DURATION, 需要BLUETOOTH權限;
可以在Activity中的onActivityResult()方法中處理結果, 如果藍牙子產品設定可見成功, 則傳回結果嗎RESULT_OK; 如果藍牙子產品設定可見失敗, 則傳回結果碼RESULT_CANCELED;
附加域是放在Intent中的, 使用Intent.putExtra(附加域,附加值)方法添加附加域;
掃描模式附加域 : 這兩個附加域的值是掃描模式, 可以為SCAN_MODE_NONE, SCAN_MODE_CONNECTABLE, SCAN_MODE_CONNECTABLE_DISCOVERABLE;
String EXTRA_SCAN_MODE : 值為"android.bluetooth.adapter.extra.SCAN_MODE";
String EXTRA_PREVIOUS_SCAN_MODE : 值為"android.bluetooth.adapter.extra.PREVIOUS_SCAN_MODE";
開關狀态附加域 : 這兩個附加域的值是開關狀态, 可以為STATE_OFF, STATE_ON, STATE_TURNING_OFF, STATE_TURNING_ON;
String EXTRA_STATE : 值為"android.bluetooth.adapter.extra.STATE";
String EXTRA_PREVIOUS_STATE : 值為"android.bluetooth.adapter.extra.PREVIOUS_STATE";
藍牙名稱附加域 : String EXTRA_LOCAL_NAME , 存放ACTION_LOCAL_NAME_CHANGED附加域的附加值 , 值為"android.bluetooth.adapter.extra.LOCAL_NAME";
可見時間附加域 : String EXTRA_DISCOVERABLE_DURATION, 存放的是ACTION_REQUEST_DISCOVERABLE廣播的可見時長, 值為"android.bluetooth.adapter.extra.DISCOVERABLE_DURATION";
int ERROR , 這個值用來标記錯誤 , 友善自己使用的 , 沒有實際意義;
傳回值 : 本地藍牙擴充卡 BluetoothAdapter對象;
作用 : 擷取是否可用
傳回值 : 傳回目前的State狀态值, STATE_ON, STATE_OFF, STATE_TURNING_ON, STATE_TURNING_OFF;
權限 : BLUETOOTH;
作用 : 擷取目前裝置藍牙子產品是否可用;
傳回值 : 傳回目前藍牙子產品是否可用, true 可用, false 不可用;
權限 : BLUETOOTH權限;
作用 : 打開本地藍牙擴充卡;
傳回值 : 如果打開成功則傳回true, 如果打開失敗傳回false;
權限 : BLUETOOTH_ADMIN權限;
作用 : 關閉本地裝置藍牙;
傳回值 : 如果關閉藍牙成功, 傳回true; 如果關閉藍牙失敗, 傳回false;
權限 : BLUETOOTH_ADMIN權限;
作用 : 開始查找遠端藍牙裝置, 先進行12秒的查詢掃描(被動可見), 之後進行頁面掃描(主動搜尋); 搜尋過成功不能嘗試對遠端裝置的連接配接, 同時已連接配接的裝置的帶寬也會被壓縮, 等待時間變長; 使用cancelDiscovery()可以終止搜尋;
傳回值 : 如果成功則傳回true, 失敗傳回false;
權限 : BLUETOOTH_ADMIN權限;
作用 : 是否正在搜尋;
傳回值 : 如果裝置正在搜尋, 傳回true; 如果裝置沒有進行藍牙搜尋, 傳回false;
作用 : 取消藍牙搜尋; 在進行connect()方法的時候, 必須調用這個方法, 藍牙搜尋是一個服務進行, 在搜尋中的時候, 不能進行連接配接;
傳回值 : 如果取消成功, 則傳回true; 如果取消失敗, 傳回false;
作用 : 擷取目前藍牙的掃描模式;
傳回值 : SCAN_MODE_NONE, SCAN_MODE_CONNECTABLE, SCAN_MODE_DISCOVERABLE;
作用 : 檢查藍牙位址是否合法, 藍牙位址字母必須大寫, 例如 : "00:43:A8:23:10:F0";
參數 : 17位的字元串, 例如 : "00:43:A8:23:10:F0";
傳回值 : 如果藍牙位址合法傳回true, 反之傳回false;
作用 : 傳回本地藍牙的MAC位址;
傳回值 : 本地的硬體位址;
傳回值 : 本地藍牙裝置的名稱;
作用 : 擷取已經配對的藍牙裝置的集合, 如果藍牙未被打開, 則傳回null;
作用 : 根據藍牙的實體位址擷取遠端的藍牙裝置, 如果位址不合法, 就會産生異常;
傳回值 : 擷取到的BluetoothDevice對象;
作用 : 建立一個監聽Rfcommon端口的藍牙監聽, 使用accept()方法監聽, 并擷取BluetoothSocket對象; 該系統會根據一個服務名稱(name)和唯一的識别碼(uuid)來建立一個SDP服務, 遠端藍牙裝置可以根據唯一的UUID來連接配接這個SDP伺服器;
參數 : name : SDP伺服器名稱, UUID, SDP記錄下的UUID;
傳回值 : 正在監聽藍牙端口;
第一種方法打開藍牙, 沒有任何提示, 直接就打開了;
第二種方法發送廣播, 會彈出一個對話框, 選擇是否打開藍牙, 選擇是藍牙才打開;
發送ACTION_REQUEST_DISCOVERABLE廣播, 同時在EXTRA_DISCOVERABLE_DURATION附加域中加入可見時間, 機關是秒;
發送這個廣播, 會彈出一個對話框, 顯示是否可見3600秒;
本文轉自 netcorner 部落格園部落格,原文連結:http://www.cnblogs.com/netcorner/p/4760797.html ,如需轉載請自行聯系原作者