我正在构建一个颤振应用程序,当设备连接到另一个蓝牙设备时,它将能够执行一些操作。这个应用程序应该可以在Android和iOS上运行,但是为了简单起见,我将在这篇文章中关注Android。此外,无论应用程序是在前台,还是在后台,还是被杀死,这都是必须的。
下面是应用程序的体系结构:
BroadcastReceiver注册蓝牙事件。BroadcastReceiver被蓝牙事件触发时,信息会被发送到颤振代码中(即使应用程序处于后台或被杀死)。创建了一个颤振隔离器来处理颤振代码。一切都很好。调用颤振代码,我可以使用print(data)记录由Android代码提供的数据。
当我想要调用任何颤振插件(比如sqflite、package_info_plus、.)时,事情变得越来越棘手了。每次我都会犯这样的错误:
错误:flutter/lib/ui/ui_dart_state.cc(199)未处理的异常:MissingPluginException(在yyy通道上没有为方法xxx找到实现)
我知道,产生的隔离无法在本机运行颤振插件。有一些帖子(找不到sendPlatformMessage‘(4个参数)“错误”,https://github.com/flutter/flutter/issues/13937)解释了如何通过使用解决方案或像隔离这样的插件来创建可以运行颤振插件的隔离。但是,我不能用这个包创建隔离,因为隔离是从Android代码创建的。
你们谁能告诉我我怎么做到的吗?有没有一种方法可以使用由本机代码创建的隔离器中的颤振插件?
先谢谢你
发布于 2021-10-18 13:11:37
听起来,您创建颤振隔离的方式可能与您的目标不兼容。有一些解决方案可以与本地的Android/iOS项目集成,比如助推 (免责声明:我还没有尝试过,也不确定是否好;您可能还会发现许多其他的替代方案,这只是一个例子)。您可以使用它来创建颤振环境。由于上面的解决方案允许一些Android代码打开一个新的普通颤振页面,并且该页面中的颤振代码可以做任何事情(当然包括调用本机--否则,像flutter_boost这样的东西实际上是无用的),所以这应该是可行的。
https://stackoverflow.com/questions/69462654
复制相似问题