flutter - Flutter 应用程序未通过 MethodChannel 接收来自 Android 的消息
问题描述
问题
我有一个主要使用 Flutter 开发的 Android 应用程序,该应用程序依赖于在后台运行的 .jar 文件。在 main.dart 中有 2 个 MethodChannel 对象,一个用于向 Java 发送命令,一个用于从 Java 接收消息。我的 Java 中的颤振通道处理方法是这样编写的:
_ui_channel.setMethodCallHandler(uiHandler);
Future<void> uiHandler(MethodCall call) async {
switch (call.method){
case "INPUT_ACCOUNT":
print("Success!");
break;
default:
print("This was called by " + call.method);
break;
}
}
在Java方面
MethodChannel out_channel= new MethodChannel(Objects.requireNonNull(getFlutterEngine()).getDartExecutor().getBinaryMessenger(), OUT_CHANNEL);
private void inputAccount(MethodChannel out_channel) {
new Handler(Looper.getMainLooper()).post(() -> {
out_channel.invokeMethod("INPUT_ACCOUNT", "", new MethodChannel.Result() {
@Override
public void success(Object result) {
}
@Override
public void error(String errorCode, String errorMessage, Object errorDetails) {
Log.e("input", errorCode + "\n" + errorMessage);
}
@Override
public void notImplemented() {
}
});
});
我已经验证了 Java 代码可以调用 invokeMethod() 并且两侧的通道是相同的。根据我在网上阅读的内容,这应该是正确的,但 Dart 从未收到“INPUT_ACCOUNT”消息并打印我发布的“Success”消息。AndroidManifest.xml 中是否有我遗漏的东西?
解决方案
推荐阅读
- javascript - vscode webview api中的window.location.href
- c# - C# 使用 VLC Wrapper 从 IP 摄像机流式传输
- python-3.x - 当字典具有提取所需的所有信息时,从字典列表返回元组列表的函数不起作用
- python - 选择在换行之前要打印多少列表元素
- eclipse - 类似于 IExecutionListener 的所有 jface 操作的侦听器
- powerbi - 如何在powerbi中将主题应用于矩形形状
- c++ - 我试图找到具有给定顺序和预顺序的二叉树我正在遵循递归方法,但我得到了错误的输出
- java - DAO 类属于 Web 应用程序的 3 层架构中的哪一层?
- flutter - 在 singlechildscrollview 列中调用有状态小部件后,颤动中的 RenderFlex 错误
- azure - Azure 相当于将 Function 保护到特定角色