当前位置 - 養生大全網 - 健康養生 - 安卓開發的藍牙。

安卓開發的藍牙。

上壹篇文章介紹了Wifi和網絡連接處理。

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