最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android BLE設置MTU大小實現詳解

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

MTU是什么?

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

MTU默認是23byte,但是供我們使用的只有20byte。所以有時候不能滿足我們的需求,需要我們手動設置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還需要減去協議Byte、Opcode和Handler。

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

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

自定義MTU

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

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

以上就是Android BLE設置MTU大小實現詳解的詳細內容,更多關于Android BLE設置MTU的資料請關注腳本之家其它相關文章!

相關文章

最新評論

襄樊市| 邯郸市| 锡林浩特市| 松潘县| 红桥区| 开远市| 同江市| 平顶山市| 临西县| 浦东新区| 河池市| 靖边县| 万山特区| 大英县| 崇阳县| 临泉县| 石台县| 依安县| 寻甸| 韩城市| 平乐县| 平阳县| 河间市| 综艺| 延长县| 年辖:市辖区| 全椒县| 河西区| 北海市| 巴彦县| 嵩明县| 建德市| 庆城县| 隆昌县| 柳林县| 巨鹿县| 巴东县| 苗栗市| 龙游县| 河池市| 温泉县|