[英]how to send data using flutter_blue?
我正在查看文檔: https://pub.dev/documentation/flutter_blue/latest/文檔中顯示了以下代碼:
// Reads all characteristics
var characteristics = service.characteristics;
for(BluetoothCharacteristic c in characteristics) {
List<int> value = await c.read();
print(value);
}
// Writes to a characteristic
await c.write([0x12, 0x34])
我知道為了閱讀,我們需要遍歷所有特征,並閱讀每一個特征。 寫呢?
如果 c 是循環內的迭代器,我們如何在循環外調用它。 我假設 write 方法中的 1 x 2 矩陣是在服務中寫入特征的位置。 我懷疑該位置應該是硬編碼的。 我只是有點困惑。,並希望得到一點澄清。 任何解釋將不勝感激! 謝謝 !
BLE 有幾種類型的特性:
現在在你的情況下,在我看來,一般來說,保持對你的特征的硬引用是一個很好的做法,因為特征在應用程序運行期間不會改變。 您可以在需要時查詢它們,但我認為最好在連接到設備后查詢它們,檢查特征類型(讀取、寫入、通知)並根據設備規格決定使用哪些特征:讀、寫、通知。
關於寫入的另一個注意事項,BLE 不允許您寫入數據塊,指示數據包大小的值稱為 MTU,基於 MTU,您必須將原始數據拆分為相同長度的數據包。 MTU 因設備以及操作系統和 BLE 版本而異,因此最好在任何寫入之前檢查它(您也可以將其存儲以備后用)。
最后一點,您不必對所有特性進行寫入/讀取/讀取,您應該始終使用 BLE 設備規范中描述的特性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.