记录一下通过 MethodChannel 获取Android信息 的最简单实践
之前搜Android与flutter的交互,搜到了好多获取电量信息的帖子,不是很简洁
首先,直接看代码吧:
在Flutter的main中获取信息并打印:
Future main() async {
runApp(MyApp());
await print(MethodChannel('channelName').invokeMethod('getMethod').then((data){
print(data);
}));
}
通过 MethodChannel('channelName').invokeMethod('getMethod') 与 原生 交互
其实 MethodChannel('channelName') 和 invokeMethod('getMethod') 中的字符串都只是一个标识,
这个标识的使用如下:
public class MainActivity extends FlutterActivity {
private static final String CHANNEL = "channelName";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
new MethodChannel(getFlutterView(),CHANNEL).setMethodCallHandler(
new MethodChannel.MethodCallHandler() {
@Override
public void onMethodCall(MethodCall methodCall, MethodChannel.Result result)
{
Log.v("信息","进入Android");
if (methodCall.method.equals("getMethod")){
result.success("恭喜,成功获取到Android信息");
}
}
}
);
}
}
channelName 要一一对应,在 flutter 中调用 invokeMethod("getMethod")后,
Android这边通过MethodCall来判断下是哪个标识 methodCall.method.equals("getMethod") ,
然后执行相应的操作,也可通过Result将结果返回给Flutter
注:这边还有个问题是,为什么 Log.v("信息","进入Android"); 没打印呢(待解决)