简介
Flutter虽然有强大的跨平台能力,但是其跨平台主要体现在UI界框架上,对于一些Android原生的功能如:获取电池电量,访问手机蓝牙,定位等硬件信息显得有些不足心。还是需要调用Android原生方法获取。所以使用Flutter和Android原生通信的方式是必不可少的
本文主要介绍Flutter与Android原生三种通信方式的用法。
1.BasicMessageChannel
定义
双向通信,,有返回值,主要用于传递字符串和半结构化的信息。
基本使用
1)Flutter端
- 创建BasicMessageChannel对象并定义channel的name,必须和Android一端保持一致。
late BasicMessageChannel<String> _messageChannel;
_messageChannel = const BasicMessageChannel<String>("baseMessageChannel",
StringCodec());
- 设置setMessageHandler监听Android原生发送的消息。
_messageChannel.setMessageHandler((message) async {
print("flutter :Message form Android reply:$message");
return "flutter already received reply ";
});
- 发送消息给Android原生。
_messageChannel.send("Hello Android,I come form Flutter");
2)Android端
- 初始化BasicMessageChannel,定义Channel名称。
val messageChannel = BasicMessageChannel<String>(
flutterEngine.dartExecutor.binaryMes