flutter_blue库在 0.6.0+1版本及过去版本都没有提供修改MTU的功能, 此后版本可能会添加, 本文中的方法仅支持安卓端.
在 bluetooth_device.dart 中添加
Future requestMtu(int mtuSize) async{
var request = protos.RequestMtuRequest.create()
..remoteId = id.toString()
..mtuSize = mtuSize
..success = false;
await FlutterBlue.instance._channel.invokeMethod('requestMtu', request.writeToBuffer());
}
Future requestConnectionProoroty(ConnectionPriority priority) async{
var request = protos.RequestConnectionPriorityRequest.create()
..remoteId =id.toString()
..priority = priority.index
..success = false;
enum ConnectionPriority{
balanced, high, low_power
}
在 flutterblue.proto 中添加
message RequestMtuRequest{
string remote_id = 1;
int32 mtuSize = 2;
bool success = 3;
}
在 flutterblue.pb json.dart 中添加
const RequestMtuRequest$json = const {
'1': 'RequestMtuRequest',
'2': const[
const{'1': 'remote_id', '3': 1, '4':1, '5':9, '10':remoteId'},
const{'1': 'mtuSize', '3': 2, '4': 1, '5': 5, '10': 'mtuSize'},
const {'1': 'success', '3': 3, '4': 1, '5': 8, '10': 'success'},
],<