2、在手机上安装安卓版超级终端;
3、进入超级终端并输入"su",点击回车键;
4、输入"busybox ifconfig",点击回车键;
5、输入命令"ip link set dev x mtu n",按下回车。
MTU是指在一个协议数据单元中( Protocol Data Unit, PDU ) 有效的最大传输 Byte 。
不同的蓝牙版本最大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不一定正确)
Added in API level 21
在 Android 中修改MTU很简单只需要调用 BluetoothGatt#requestMtu(int MTU) 方法即可。 requestMtu(intMTU) 必须在发现蓝牙服务并建立蓝牙服务连接之后才能调用,否则 MTU 会默认为 20Byte 。如果调用成功会自定回调 BluetoothGattCallback 类中的 onMtuChanged(BluetoothGatt gatt, int mtu, int status) 方法。
注意:我看到一些文档提到在 public void onServicesDiscovered(BluetoothGatt gatt, int status) { } 方法中设置 MTU ,但是亲自尝试之后不起作用。所以在连接成功之后立即设置 MTU ,成功之后再去搜索服务。
1 先下载安卓版超级终端到手机上,然后进行安装。2 输入su之后按手机软键盘的回车键,此时是获取rot权限。
3 输入busybox ifconfig,按下软键盘的回车,此时可以查看手机ip、网卡硬件找到手机的无线连接。
4 输入命令ip link set dev x mtu n,按下回车,x只带的是网卡名城,n处输入你想修改的mtu值,最大不能超过1500。
5 此方式进行的mtu修改只是暂时性的,手机重启之后将会恢复默认设置。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)