2
我正在使用Android SDK的android.bluetooth和android.bluetooth.le API。Android BLE - 大塊特徵值如何以大塊讀取(使用偏移量)?
我想實現一個應用程序(作爲核心角色,並連接到BLE外設以讀取特徵值和描述符)。
應用程序需要讀取的特徵值很大,因此需要以連續的塊讀取它。我對如何實現這一點的理解是,應用程序應該在讀取請求中包含一個偏移量,該偏移量向外設指示要在響應中返回的總數據的子部分。
但是,API僅提供BluetoothGatt.readCharacteristic(BluetoothGattCharacteristic)方法。我無法找到包含偏移參數的讀取特性API調用,用於製作上一段中描述的部分讀取特性請求的類型。
有誰知道我是如何實現這些分塊的特徵讀取?
注意:我知道有一個類似的堆棧溢出問題here。它沒有提供我正在處理的Android方面的答案。
o.k,但是在進行特徵讀取請求時,GATT客戶端不應該能夠指定偏移量嗎?那麼客戶已經讀取了一些特徵值並因此需要通過包含適當偏移量的請求只讀取其餘部分的用例呢? – user1310850
是的,你是對的。但是,GATT客戶端位於Android的藍牙堆棧內,並且能夠請求不同的偏移量。 GATT客戶端和應用程序之間的外部API不是由任何標準定義的,因此Android可能包含或排除他們想要的任何功能。而且他們確實沒有包含「讀取抵消」功能。 – Emil
謝謝,正如您所描述的,我正在看到藍牙堆棧負責將正在讀取的值分解爲更小的個人響應。你知道是什麼觸發了這種行爲?它在傳遞給BluetoothGattServer.sendResponse(....,byte []值)的byte []值參數是否等於或超過最大長度時觸發? – user1310850