我正在開發一款應用程序,它使用低功耗藍牙與BLE設備進行通信。問題是該項目需要高度連續的數據交換才能工作。Android BLE,從同一設備進行寫入和讀取,無損耗吞吐量和時間
目前我已經開發了4個片段,它們共享相同的BluetoothGatt性能和相同的數據陣列。當我連接到BLE設備時,我將連接優先級設置爲高,然後我開始寫入數據的寫入循環,通常只有4個字節,每50毫升。
與此同時我開始閱讀並更新我的界面。 我注意到,如果我停止寫作,我每隔50毫升收到一包數據,但如果我讓寫循環工作,讀取時間從50毫升增加到100或更多。 這不是一個真正的大問題,但它減少了所有的系統性能。
我在網上尋找解決方案,但除了已經幫助我很多的連接優先級外,我什麼都沒找到,我想知道是否有人從未處理過這樣的問題以及他是如何做到的。謝謝
對'特性'使用'write'和'read'是某種**重任務**,因爲它涉及多個無線信號交換以確認數據傳輸。如果您需要頻繁發送數據或發送大量數據,我相信您需要使用**特徵通知**系統。它意味着傳輸數據,而不是偶爾進行交流的讀寫。拿一個溫度計燈標:你會想知道溫度變化(而不是手動讀取它),但是你想寫一個特性來在F°和C°度之間切換。而已 ! – Mackovich
查找文檔後,下面是您想要使用的方法:[BluetoothGattServer#notifyCharacteristicChanged](https://developer.android.com/reference/android/bluetooth/BluetoothGattServer.html) – Mackovich
那麼你建議設置特性值然後通知變化而不是設置值並調用寫入?對不起,我只是不想誤解,非常感謝您的幫助! –