亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Android BLE設(shè)置MTU大小實現(xiàn)詳解

 更新時間:2023年04月27日 10:46:24   作者:努力奔跑的小男孩  
這篇文章主要為大家介紹了Android BLE設(shè)置MTU大小實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

MTU是什么?

MTU是指在一個協(xié)議數(shù)據(jù)單元中(Protocol Data Unit, PDU) 有效的最大傳輸Byte

MTU默認是23byte,但是供我們使用的只有20byte。所以有時候不能滿足我們的需求,需要我們手動設(shè)置MTU的大小。
core specATT的默認MTU23個Byte,ATTOpcode1Byte、ATTHandle2Byte、GATT20Byte。

23Byte(ATT)=1Byte(Opcode)+2Byte(Handler)+20Byte(BATT)。

BLE版本不同MTU不同

不同的藍牙版本最大MTU不同,例如:藍牙4.2的最大MTU=247Byte(不一定正確,也有說是257Byte、也有說是241Byte),藍牙5.0的最大MTU=512Byte,有效的最大MTU還需要減去協(xié)議Byte、Opcode和Handler。

藍牙4.2:1Byte(Opcode)+2Byte(Handler)+244Byte(BATT)=247Byte(不一定正確)

藍牙5.0:512Byte不一定正確)

自定義MTU

Added in API level 21Android中修改MTU很簡單只需要調(diào)用BluetoothGatt#requestMtu(int MTU)方法即可。requestMtu(intMTU)必須在發(fā)現(xiàn)藍牙服務(wù)并建立藍牙服務(wù)連接之后才能調(diào)用,否則MTU會默認為20Byte。如果調(diào)用成功會自定回調(diào)BluetoothGattCallback類中的onMtuChanged(BluetoothGatt gatt, int mtu, int status)方法。

注意:我看到一些文檔提到在public void onServicesDiscovered(BluetoothGatt gatt, int status) { }方法中設(shè)置MTU,但是親自嘗試之后不起作用。所以在連接成功之后立即設(shè)置MTU,成功之后再去搜索服務(wù)。

以上就是Android BLE設(shè)置MTU大小實現(xiàn)詳解的詳細內(nèi)容,更多關(guān)于Android BLE設(shè)置MTU的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論