最近項目有個需求,手機裝置連接配接多個藍牙4.0 裝置 并擷取這些裝置的資料。
查詢了很多資料終于實作,現進行總結。
---------------------------------------------------------------------------------------------------------------------------------------------------------------
從零開始實作一個連接配接多個藍牙4.0 裝置并擷取資料的 Demo
注:如果不想看實作過程的,直接看最下面的demo源碼即可,或每一步後相關操作步驟的完整代碼。
一、Demo需求
1、搜尋裝置 , 選擇多個要連接配接的裝置。
2、開始連接配接,顯示資料。
二、項目知識儲備
項目中需要用到的三方:
1、RecyclerView
清單,用于顯示掃描得到的所有藍牙裝置
2、BaseRecyclerViewAdapterHelper
Recyclerview 幫助架構,快速實作清單操作
3、eventbus
用于消息傳遞,擷取到藍牙傳送的資料之後,重新整理界面顯示資料時使用
4、bluetooth-manager
藍牙4.0架構
5、permissionsdispatcher
權限管理,适配6.0+裝置
添加依賴 gradle.bulld檔案
三、項目實作,布局檔案
1、demo中一共用到兩個activity 對應兩個布局檔案
先看掃描裝置界面
包含:
1、一個清單,顯示 所有掃描到的裝置的MAC位址,點選狀态在 ''已選擇' or '‘未選擇’ 之間改變,表明目前裝置有沒有加入到需要連接配接的裝置集合中
2、掃描按鈕
3、結束掃描按鈕
4、完成選擇按鈕,将選擇的裝置MAC位址傳回

連接配接界面。
包含:
1、選擇需要連接配接的傳感器裝置 按鈕
2、開始連接配接 按鈕
3、資料展示
布局檔案代碼:
四、Activity實作
1、掃描 裝置 選擇裝置Activity
(1)、變量聲明
關鍵代碼:
(1)、藍牙掃描的初始化設定
藍牙掃描設定初始化
(2)、開始掃描按鈕 操作
(3)、停止掃描按鈕 操作
(4)、RecyclerView初始化 ,點選事件操作
activity全部代碼:
SelectDeviceActivity.class
擴充卡相關代碼:
ScanDeviceAdapter.class
擴充卡布局代碼:
item_device.xml
2、連接配接多裝置,擷取資料并展示Activity
(1)、變量聲明
2、關鍵代碼
1、權限适配
注意:不止藍牙權限,位置權限也需要打開
權限适配
2、藍牙開啟、連接配接等 初始化設定
initBle
3、開始連接配接操作
connectBle
activity全部代碼:
XBleActivity.class
----------------------------------------------------------------------------------------------------------------------------------------------------------
項目位址:
https://github.com/BestCoderXQX/MagkareBle4.0
項目使用說明:
1、點選按鈕:'選擇需要連接配接的傳感器裝置'、跳轉新界面
2、點選'開始掃描'按鈕,會出現很多裝置的mac位址 ,以清單的新式展現
3、對清單item操作,更改狀态'已選擇'or'未選擇'
4、點選按鈕'完成選擇裝置'按鈕,将清單中狀态為'已選擇'的mac集合傳回上個界面
5、點選'開始連接配接'按鈕。連接配接開始,顯示連接配接裝置的資料。(注意,這裡是按我的傳感器來的。實際需要換成你所用到的裝置的 資料 轉換公式!)
架構使用說明:
View Code
如有問題,歡迎右側加群。
作者:聽着music睡
出處:http://www.cnblogs.com/xqxacm/
Android交流群:38197636
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。