天天看點

Android API開發之藍牙開發之淺談Android藍牙開發

随着可穿戴裝置的流行,藍牙是必不可少的一門技術了。

1.簡介

1.1.藍牙有傳統藍牙(3.0以下)和低功耗藍牙(ble,又稱藍牙4.0)之分。

1.2.android手機必須系統版本4.3及以上才支援BLE API。低功耗藍牙較傳統藍牙, 傳輸速度更快,覆寫範圍更廣,安全性更高,延遲更短,耗電極低等等優點。

1.3.傳統藍牙與低功耗藍牙通信方式也有所不同,傳統的一般通過socket方式,而低功耗藍牙是通過Gatt協定來實作。

1.4.低功耗藍牙也叫BLE。

1.5.低功耗藍牙簡介

藍牙低能耗(BLE)技術是低成本、短距離、可互操作的魯棒性無線技術,工作在免許可的2.4GHz ISM射頻頻段。它從一開始就設計為超低功耗(ULP)無線技術。它利用許多智能手段最大限度地降低功耗。藍牙低能耗技術采用可變連接配接時間間隔,這個間隔根據具體應用可以設定為幾毫秒到幾秒不等。另外,因為BLE技術采用非常快速的連接配接方式,是以平時可以處于“非連接配接”狀态(節省能源),此時鍊路兩端互相間隻是知曉對方,隻有在必要時才開啟鍊路,然後在盡可能短的時間内關閉鍊路。

BLE技術的工作模式非常适合用于從微型無線傳感器(每半秒交換一次資料)或使用完全異步通信的遙控器等其它外設傳送資料。這些裝置發送的資料量非常少(通常幾個位元組),而且發送次數也很少(例如每秒幾次到每分鐘一次,甚至更少)。

2.藍牙的組成

Android API開發之藍牙開發之淺談Android藍牙開發

2.1.BLE分為Service(服務)、Characteristic(特征)、Descriptor()三部分,每個部分都擁有不同的 UUID來辨別

2.2.一個BLE裝置可以擁有多個Service,一個Service可以包含多個Characteristic, 一個Characteristic包含一個Value和多個Descriptor,一個Descriptor包含一個Value

2.3.通信資料一般存儲在Characteristic内,目前一個Characteristic中存儲的資料最大為20 byte

2.4.與Characteristic相關的權限字段主要有READ、WRITE、WRITE_NO_RESPONSE、NOTIFY。 Characteristic具有的權限屬性可以有一個或者多個

2.5.Service

一個低功耗藍牙裝置可以定義許多 Service, Service 可以了解為一個功能的集合。裝置中每一個不同的 Service 都有一個 128 bit 的 UUID 作為這個 Service 的獨立标志。藍牙核心規範制定了兩種不同的UUID,一種是基本的UUID,一種是代替基本UUID的16位UUID。所有的藍牙技術聯盟定義UUID共用了一個基本的UUID:

0x0000xxxx-0000-1000-8000-00805F9B34FB

為了進一步簡化基本UUID,每一個藍牙技術聯盟定義的屬性有一個唯一的16位UUID,以代替上面的基本UUID的‘x’部分。例如,心率測量特性使用0X2A37作為它的16位UUID,是以它完整的128位UUID為:

0x00002A37-0000-1000-8000-00805F9B34FB

2.6.Characteristic

在 Service 下面,又包括了許多的獨立資料項,我們把這些獨立的資料項稱作 Characteristic。同樣的,每一個 Characteristic 也有一個唯一的 UUID 作為辨別符。在 Android 開發中,建立藍牙連接配接後,我們說的通過藍牙發送資料給外圍裝置就是往這些 Characteristic 中的 Value 字段寫入資料;外圍裝置發送資料給手機就是監聽這些 Charateristic 中的 Value 字段有沒有變化,如果發生了變化,手機的 BLE API 就會收到一個監聽的回調。

繼續閱讀