i was using native android method in my flutter app using documentation which said use
MethodChannel(flutterView, CHANNEL).setMethodCallHandler...
but after upgrading flutter the MethodChannel function does not require flutterView and
there is no flutterView anymore.
can not resolve method getFlutterView()
i think there should be a new tutorial for creating channel
instead it needs some BinaryMessenger which i don't know what to give instead.
this is the old code which is not working anymore:
import io.flutter.app.FlutterActivity;
import io.flutter.plugin.common.MethodCall;
import io.flutter.plugin.common.MethodChannel;
import io.flutter.plugin.common.MethodChannel.MethodCallHandler;
import io.flutter.plugin.common.MethodChannel.Result;
public class MainActivity extends FlutterActivity {
private static final String CHANNEL = "samples.flutter.dev/battery";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
GeneratedPluginRegistrant.registerWith(this);
new MethodChannel(getFlutterView(), CHANNEL).setMethodCallHandler(
new MethodCallHandler() {
@Override
public void onMethodCall(MethodCall call, Result result) {
// Note: this method is invoked on the main thread.
// TODO
}
});
}
Replace
getFlutterView()withgetFlutterEngine().getDartExecutor().getBinaryMessenger().You don't actually need the
.getBinaryMessenger()asDartExecutorimplementsBinaryMessengeritself (by just forwarding), but I think it's more correct to specify the messenger.