Android學習 藍芽模組的話裡話外

2021-07-27 05:29:51 字數 1967 閱讀 5049

藍芽,英文叫bluetooth,是近距離無線通訊的標準,它的命名是有個故事:傳說瑞典有個國王特別愛吃藍莓導致自己的牙齒天天都是藍色的,在他執政期間這位國王非常善於交際,能說會到,和鄰國的搞得關係非常好,這個bluetooth的發明者覺得藍芽它的作用就是在近距離溝通周圍的裝置,跟這個國王很類似,於是起名叫藍芽。

在大部分的程式設計工作中,藍芽這個東西一般是接觸不到的,但是作為了解可以快速的看一遍。

藍芽是主要針對10m範圍的短距離通訊,兩個裝置通過藍芽通訊必須都有藍芽介面卡,藍芽模組有最重要的兩個api:bluetoothadapter 、 bluetoothdevice;和不是最重要的:

bluetoothsocket 、bluetoothserversocket。

android

:name=

"android.permission.bluetooth"

/>

android

:name=

"android.permission.bluetooth_admin"

/>

android

:name=

"android.permission.bluetooth_privileged"

/>

第乙個是使用藍芽的許可權;

第二個是需要掃瞄裝置或者操作藍芽設定,要申請的許可權;

第三個是允許裝置不經過使用者操作自動配對,但這個許可權並不能授權給第三方程式。

首先是開啟藍芽的步驟:1. 獲取藍芽介面卡物件;2. 判斷是否開啟藍芽;3. 沒有開啟則傳送intent開啟並請求返回值;4. 判斷返回是否成功開啟藍芽。

在oncreate方法中:

bluetoothadapter mbluetoothadapter = bluetoothadapter.getdefaultadapter();

if (mbluetoothadapter == null) else

}

然後在:

@override

protected void

onactivityresult(int requestcode, int resultcode, intent data) else if (resultcode == result_canceled)

}}

這樣ok

然後我們需要搜尋周圍的藍芽裝置:

思路是:1. 根據上面,已經獲取了藍芽物件,可以使用 getboundeddevices() 來獲取已繫結裝置的列表;2. 搜尋周圍的裝置,startdiscovery(),這個是非同步的方法,會搜尋12秒;3. 搜到的裝置都是通過廣播來得到,系統傳送action_found(裝置找到),獲取這個intent,其中包括兩個extra fields:extra_device和extra_class。bluetoothdevice中的extra_device就是我們搜尋到的裝置物件。 確認搜尋到裝置後,我們可以從得到的bluetoothdevice物件中獲得裝置的名稱和位址。

於是:寫接收者:

broadcastreceiver receiver = new broadcastreceiver() 

} else if (action.equals(bluetoothadapter.action_discovery_finished))

}};

開始搜尋並註冊廣播:

mbluetoothadapter.startdiscovery();

intentfilter filter = new intentfilter(bluetoothdevice.action_found);

registerreceiver(receiver

, filter);

而且不要忘了,連線裝置之前要停止搜尋,否則連線會非常慢並容易失敗。

然後是建立連線,要通過bluetoothsocket建立,裝置與裝置之間有uuid作為標識,服務端和客戶端的uuid必須是一樣的。這裡連線不做贅述。

android學習筆記 藍芽介紹

藍芽的許可權 bluetooth和.bluetooth admin 在註冊檔案中寫 開啟和關閉藍芽裝置 bluetoothadapter是藍芽中的核心類,下面的 建立了bluetoothadapter物件 private bluetoothadapter bluetoothadapter bluet...

Android學習筆記 藍芽入門

藍芽是一種支援裝置間短距離通訊的無線電技術。支援移動 膝上型電腦 無線耳機 智慧型小車等裝置之間進行資訊的交換。android支援的藍芽協議棧 協議棧名稱 特點bluz linux提供給android的藍芽棧,開源 靈活 高效,目前最常用的 bluedroid android特有的,結構清晰,方便移...

android 藍芽檔案

利用android 傳送檔案需要解決一下幾個問題。1,傳送方選中檔案時如何獲取檔案位址?以下這段 作用是返回你選擇檔案的uri,因此你要重寫 onactivityresult來獲取返回的uri。但是這裡有有兩種情況存在先看下圖。當你選擇檔案管理的時候選擇其中的乙個檔案返回的uri為 file sto...