安卓開發的藍牙。
Android開發的WiFi和網絡連接處理
接下來,我們繼續說說藍牙在Android中的基本使用。
藍牙是目前應用最廣泛的無線通信協議之壹。主要用於短距離設備通信(10米),常用於連接耳機、鼠標和移動通信設備。
值得壹提的是:
Android4.2增加了壹些新功能,但是熟悉藍牙的人可能開始頭疼了,那就是Android4.2引入了新的藍牙協議棧pin BLE。谷歌和博通的合作開發了新的藍牙協議棧,以取代基於堆棧的Bluez。所以市面上有老設備的兼容性問題,很多藍牙設備在android4.2手機上無法正常使用。
BluetoothAdapter簡單表示這個設備(手機、電腦等)的藍牙適配器對象。).
首先:我們需要許可
要操作藍牙,必須先向AndroidManifest.xml添加權限。
* *讓我們看看如何使用藍牙。**↓↓↓****
演示準備就緒:
返回值:如果設備有藍牙功能,返回壹個BluetoothAdapter的實例;否則,返回壹個空對象。
如何打開藍牙設備:
1.直接調用函數enable()打開藍牙設備;
2.系統API打開藍牙設備,會彈出壹個對話框式的活動,供用戶選擇是否打開藍牙設備。
註:1。如果開啟藍牙,則不會彈出活動界面。2.在大多數安卓手機中,不支持在飛行模式下開啟藍牙。如果藍牙已經開啟,藍牙的開關和狀態會隨著飛行模式的狀態而變化。
1.搜索藍牙設備
使用BluetoothAdapter的startDiscovery()方法搜索藍牙設備。
startDiscovery()方法是壹個異步方法,調用後將立即返回。這個方法會搜索其他藍牙設備,這個過程會持續12秒。調用此方法後,搜索過程實際上是在壹個系統服務中進行的,所以可以調用cancelDiscovery()方法來停止搜索(在不執行發現請求時可以調用此方法)。
系統開始搜索藍牙設備。
(* (oo))系統將發送以下三個廣播:
2.掃描設備
3.定義接收搜索結果的廣播接收器。
註冊廣播
獲取附近的藍牙設備
第壹步建立連接:首先,Android SDK(2.0版以上)支持的藍牙連接是通過BluetoothSocket建立連接。在建立連接之前,服務器端的BluetoothServerSocket和客戶端(BluetoothSocket)需要指定相同的UUID。因為建立連接的方法會阻塞線程,所以服務器端和客戶端都應該啟動壹個新的線程連接。
(這裏服務器和客戶端是相對的。)
兩個藍牙設備之間的連接必須實現服務器和客戶端之間的機制。
當兩個設備在同壹個RFCOMM通道下有壹個連接的BluetoothSocket時,這兩個設備可以說是連接的。
服務器設備和客戶端設備有不同的方式來獲得藍牙套接字。
1,服務器設備是通過入局連接獲得的。
2.通過打開到服務器的RFCOMM通道來獲得客戶端設備。
計算機網絡服務器
通過調用BluetoothAdapter的ListennusingrfCommwithServiceRecord(字符串,UUID)方法獲得BluetoothServerSocket(UUID用於客戶端和服務器之間的配對)。
客戶
調用BluetoothService的createrfcomsockettoservicerecord(UUID)方法獲取bluetooth socket(UUID應該與服務器的UUID相同)。
調用BluetoothSocket的connect()方法(也就是block方法)。如果UUID與服務器的UUID匹配,並且服務器接受連接,則connect()方法返回。
數據傳輸,通過以上操作,藍牙Socket連接已經建立,數據傳輸無非就是壹個流。
獲取流
這個類別是遠程藍牙設備的描述。通過它,您可以與本地藍牙設備- BluetoothAdapter進行通信。
我不知道如何描述許多事情。這裏有壹個演示:
剛好有個剛學的小夥伴問我怎麽用ListView,我就用ListView吧。
源代碼:
賴德莫
GitHub: /Rairmmd/android-demo
編碼:/u/Rair/p/RairDemo/git