मैं एक ऐप पर काम कर रहा हूं जो बीएलई का उपयोग कर उपकरणों के बीच डेटा का आदान-प्रदान करता है।ब्लूटूथगैट: नए एमटीयू सफलताओं पर बातचीत करना, लेकिन नए आकार का उपयोग नहीं किया जा सकता है (3 बाइट्स अंतर)
बेहतर प्रदर्शन प्राप्त करने के लिए, दो उपकरणों को जोड़ने के बाद मैं बीएलई पर बड़े डेटा पैकेजों का आदान-प्रदान करने के लिए एमटीयू बढ़ाने के लिए बातचीत कर रहा हूं।
एक बार BluetoothDevice जुड़ा हुआ है और सभी सेवाओं और विशेषताओं को पढ़ रहे हैं, मैं का उपयोग कर MTU बढ़ाने के लिए अनुरोध करते हैं:,
private void requestMtu() {
//gatt is a BluetoothGatt instance and MAX_MTU is 512
this.gatt.requestMtu(MAX_MTU);
}
उसके बाद BluetoothGattCallback
कार्यान्वयन मैं MTU अनुरोध सफल हो पर और नए MTU से मेल खाता है एक मैं अनुरोध किया:
@Override
public void onMtuChanged(BluetoothGatt gatt, int mtu, int status) {
super.onMtuChanged(gatt, mtu, status);
if (status == BluetoothGatt.GATT_SUCCESS) {
this.supportedMTU = mtu;
}
}
समस्या यह है, जब मैं 512 बाइट्स के एक डेटा पैकेज भेजने का प्रयास करें, दूसरे पक्ष (onCharacteristicWriteRequest:
) पर मैं 509 बाइट्स मिलता है।
कोई विचार?