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