Android BLE 藍牙低功耗教程,中央和周邊的實現

Android4.3 規範了BLE的API,但是直到目前的4.4,還有些功能不完善。

在BLE協議中,有兩個角色,周邊(Periphery)和中央(Central);周邊是數據提供者,中央是數據使用/處理者;在iOS SDK裏面,可以把一個iOS設備作爲一個周邊,也可以作爲一箇中央;但是在Android SDK裏面,直到目前最新的Android4.4.2,Android手機只能作爲中央來使用和處理數據;那數據從哪兒來?從BLE設備來,現在的很多可穿戴設備都是用BLE來提供數據的。

一箇中央可以同時連接多個周邊,但是一個周邊某一時刻只能連接一箇中央。

大概瞭解了概念後,看看Android BLE SDK的四個關鍵類(class):

a) BluetoothGattServer作爲周邊來提供數據;BluetoothGattServerCallback返回周邊的狀態。

b) BluetoothGatt作爲中央來使用和處理數據;BluetoothGattCallback返回中央的狀態和周邊提供的數據。

因爲我們討論的是Android的BLE SDK,下面所有的BluetoothGattServer代表周邊,BluetoothGatt代表中央。

一.創建一個周邊(雖然目前周邊API在Android手機上不工作,但還是看看)

a)先看看周邊用到的class,藍色橢圓

\

b)說明:

每一個周邊BluetoothGattServer,包含多個服務Service,每一個Service包含多個特徵Characteristic。

1.new一個特徵:character = new BluetoothGattCharacteristic(
UUID.fromString(characteristicUUID),
BluetoothGattCharacteristic.PROPERTY_NOTIFY,
BluetoothGattCharacteristic.PERMISSION_READ);

2.new一個服務:service = new BluetoothGattService(UUID.fromString(serviceUUID),
BluetoothGattService.SERVICE_TYPE_PRIMARY);

3.把特徵添加到服務:service.addCharacteristic(character);

4.獲取BluetoothManager:manager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);

5.獲取/打開周邊:BluetoothGattServer server = manager.openGattServer(this,
new BluetoothGattServerCallback(){...});

6.把service添加到周邊:server.addService(service);

7.開始廣播service:Google還沒有廣播Service的API,等吧!!!!!所以目前我們還不能讓一個Android手機作爲周邊來提供數據。




二.創建一箇中央(這次不會讓你失望,可以成功創建並且連接到周邊的)

a)先看看中央用到的class,藍色橢圓


下載地址:點擊打開鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章