Android藍芽BLE(一) 使用介紹

2021-07-13 09:05:13 字數 1378 閱讀 1144

一、基本ble概念介紹

藍芽ble,主要以中心裝置和周邊裝置作為區分,分別對應ble裝置的主機、從機,其主要區別是,從機可以發起廣播,而主機能掃瞄廣播,並主機連線ble藍芽從機。目前在android 平台上,主機api從4.3以上已經支援,而從機api需要5.0以上的系統才能使用。

二、ble 協議介紹

generic attribute profile (gatt)

通過ble連線,讀寫屬性類小資料的profile通用規範。現在所有的ble應用profile都是基於gatt的,也就是說ble傳輸所用到的service和characteristic等都是通過gatt來

統一管理的。

api中gatt分別對應兩個類,分別是bluetoothgatt和bluetoothgattserver,分別對應中心裝置和外圍裝置的相關操作。

attribute protocol (att)

gatt是基於attprotocol的。att針對ble裝置做了專門的優化,具體就是在傳輸過程中使用盡量少的資料。每個屬性都有乙個唯一的uuid,屬性將以characteristics and services的形式傳輸。

service

characteristic的集合。例如乙個service叫做「heart rate monitor」,它可能包含多個characteristics,其中可能包含乙個叫做「heart ratemeasurement」的characteristic。

characteristic

characteristic可以理解為乙個資料型別,它包括乙個value和0至多個對次value的描述(descriptor)。

descriptor

對characteristic的描述,例如範圍、計量單位等。

三、使用許可權

和經典藍芽一樣,應用使用藍芽,需要宣告bluetooth許可權,如果需要掃瞄裝置或者操作藍芽設定,則還需要bluetooth_admin許可權:

name="android.permission.bluetooth_admin"/>

除了藍芽許可權外,如果需要ble feature則還需要宣告uses-feature:

按時required為true時,則應用只能在支援ble的android裝置上安裝執行;required為false時,android裝置均可正常安裝執行,需要在**執行時判斷裝置是否支援ble。

四、常用測試工具

android 端:ble device monitor

通過該工具可以實現中心端的掃瞄ble裝置,並實現收發資料。

ios 端:lightblue

掃瞄ble裝置,並檢視相關支援的服務、收發資料 ,但外圍ble不能被連線時訊號不佳時,則只能完成掃瞄功能。

參考目錄:

官方介紹:

藍芽ble讀寫

手機上可以獲取對應的返回值 但是如果用手機給藍芽ble傳送指定指令,則沒辦法接收到任何資料,請問用官方ble二次開發可不可以實現手機同ble裝置的讀寫通訊?傳送指令 如下 datacharacteristic.setvalue 123 getbytes datacharacteristic.setw...

藍芽 ble 總結

藍芽ble是藍芽4.0 以上低功耗藍芽的意思,同時區別於基本的藍芽。藍芽ble有自己的協議,同時在使用時基本上使用gatt就可以滿足基本的通訊任務。藍芽ble在除錯時需要使用基本的工具 藍芽的基本工具可以使用bluez這軟體包來編譯。同時這個軟體包裡面也有一些事例可以檢視,和使用。推薦使用5.5版本...

BLE藍芽協議 BLE連線建立過程梳理(一)

應付比廣播更為複雜的資料傳輸,或者要在裝置之間實現可靠的資料交付,這些都要依賴於連線。連線使用資料通道在兩個裝置之間可靠地傳送資訊。它採取了自適應跳頻增強魯棒性,同時使用了非常低的占空比,盡可能地降低功率消耗。裝置建立連線的過程如下圖所示。簡言之,裝置首先廣播可連線廣播事件,其他裝置收到之後即可發起...