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

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

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

MTU是什么?

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

MTU默認(rèn)是23byte,但是供我們使用的只有20byte。所以有時(shí)候不能滿足我們的需求,需要我們手動(dòng)設(shè)置MTU的大小。
core specATT的默認(rèn)MTU23個(gè)ByteATTOpcode1個(gè)Byte、ATTHandle2個(gè)ByteGATT20個(gè)Byte。

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

BLE版本不同MTU不同

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

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

藍(lán)牙5.0:512Byte不一定正確)

自定義MTU

Added in API level 21Android中修改MTU很簡(jiǎn)單只需要調(diào)用BluetoothGatt#requestMtu(int MTU)方法即可。requestMtu(intMTU)必須在發(fā)現(xiàn)藍(lán)牙服務(wù)并建立藍(lán)牙服務(wù)連接之后才能調(diào)用,否則MTU會(huì)默認(rèn)為20Byte。如果調(diào)用成功會(huì)自定回調(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大小實(shí)現(xiàn)詳解的詳細(xì)內(nèi)容,更多關(guān)于Android BLE設(shè)置MTU的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論

牡丹江市| 麟游县| 法库县| 青铜峡市| 如皋市| 平和县| 华阴市| 栾城县| 突泉县| 富平县| 息烽县| 鸡泽县| 凉城县| 太湖县| 松阳县| 东阳市| 安图县| 正蓝旗| 正安县| 南召县| 青浦区| 东乌| 东乡族自治县| 黄龙县| 建始县| 雷州市| 凉城县| 洛阳市| 宜兰市| 宣恩县| 西盟| 固始县| 任丘市| 昂仁县| 偃师市| 台湾省| 安福县| 丘北县| 娄烦县| 乐陵市| 镇原县|