Android 藍芽相關介面及方法

2021-09-25 12:16:19 字數 3057 閱讀 1355

首先,要操作藍芽,先要在androidmanifest.xml裡加入許可權

然後,看下api,android所有關於藍芽開發的類都在android.bluetooth包下,共有8個類

而我們需要用到了就只有幾個而已:

1.bluetoothadapter顧名思義,藍芽介面卡,直到我們建立bluetoothsocket連線之前,都要不斷操作它

bluetoothadapter裡的方法很多,常用的有以下幾個:

canceldiscovery()

disable()關閉藍芽

enable()

intemtenabler=new intent(bluetoothadapter.action_request_enable);

startactivityforresult(enabler,recode);//同startactivity(enabler);

getaddress()獲取本地藍芽位址

getdefaultadapter()獲取預設bluetoothadapter,實際上,也只有這一種方法獲取bluetoothadapter

getname()獲取本地藍芽名稱

getremotedevice(string address)根據藍芽位址獲取遠端藍芽裝置

getstate()獲取本地藍芽介面卡當前狀態(感覺可能除錯的時候更需要)

isdiscovering()判斷當前是否正在查詢裝置,是返回true

isenabled()判斷藍芽是否開啟,已開啟返回true,否則,返回false

listenusingrfcommwithservicerecord(string name,uuid uuid)根據名稱,uuid建立並返回bluetoothserversocket,這是建立bluetoothsocket伺服器端的第一步

startdiscovery()開始搜尋,這是搜尋的第一步

2.bluetoothdevice看名字就知道,這個類描述了乙個藍芽裝置

createrfcommsockettoservicerecord(uuiduuid)根據uuid建立並返回乙個bluetoothsocket

這個方法也是我們獲取bluetoothdevice的目的——建立bluetoothsocket

這個類其他的方法,如getaddress(),getname(),同bluetoothadapter

3.bluetoothserversocket如果去除了bluetooth相信大家一定再熟悉不過了,既然是socket,方法就應該都差不多,

這個類一種只有三個方法

兩個過載的accept(),accept(inttimeout)兩者的區別在於後面的方法指定了過時時間,需要注意的是,執行這兩個方法的時候,直到接收到了客戶端的請求(或是過期之後),都會阻塞執行緒,應該放在新執行緒裡執行!

還有一點需要注意的是,這兩個方法都返回乙個bluetoothsocket,最後的連線也是伺服器端與客戶端的兩個bluetoothsocket的連線

close()這個就不用說了吧,翻譯一下——關閉!

4.bluetoothsocket,跟bluetoothserversocket相對,是客戶端

一共5個方法,不出意外,都會用到

close(),關閉

connect()連線

getinptustream()獲取輸入流

getoutputstream()獲取輸出流

getremotedevice()獲取遠端裝置,這裡指的是獲取bluetoothsocket指定連線的那個遠端藍芽裝置

Android 藍芽開發相關知識總結

這個不用多費口舌,google已經寫得很詳細了,而且是中文 藍芽 androiddeveloper。建議仔細閱讀。同樣,依舊是google的示例,是乙個通過藍芽進行雙向通訊的聊天程式。該示例內容如下 1.開啟藍芽 掃瞄其他藍芽裝置 2.查詢已配對的藍芽裝置 3.建立rfcomm渠道 套接字 4.連線...

Android6 0藍芽許可權申請及開啟藍芽

1 需要申請如下許可權 2 申請執行時許可權 檢查藍芽許可權 public void checkblepermission 1 else 2.1 重寫onrequestpermissionsresult,判斷使用者是否同意 override public void onrequestpermissi...

List介面及相關類

概述 有序的 collection 也稱為序列 此介面的使用者可以對列表中每個元素的插入位置進行精確地控制。使用者可以根據元素的整數索引 在列表中的位置 訪問元素,並搜尋列表中的元素。遍歷方式 list介面是有序的,可以通過普通for遍歷,還可以通過listiterator遍歷。e get int ...