我目前正在为RealWear HMT-1开发Flutter应用程序,它是一台戴在头上的工业Android计算机,与它的所有交互都基于语音命令。它运行后台服务,该服务将语音命令转换为单击按钮和其他手势。实际上,每个应用程序都可以通过语音进行控制,但是为了帮助服务找到所需的控件,您应该在视图布局中提供一些其他元数据。它支持按文本,资源ID和内容描述属性进行搜索。不幸的是,您无法为Flutter小部件设置这些属性。
幸运的是,有一种方法可以将本机Android视图嵌入Flutter应用程序中。我创建了一个简单的按钮插件,如此处https://medium.com/flutter-community/flutter-platformview-how-to-create-flutter-widgets-from-native-views-366e378115b6所述,并成功地在示例应用程序中显示了此按钮。 但是问题来了-这个本机按钮在视图层次结构中不可见,我无法在UI Automator Viewer中选择它,并且在视图树中也看不到它。最糟糕的是,HMT-1语音服务未检测到该按钮,该服务通常将所有检测到的按钮(甚至是常规的Flutter按钮,那些我无法将元数据绑定到的按钮)都标记有一些数字叠加层,而不是此按钮。 Googling使我认为这可能与Accesibility有关,也许我应该实现一些AccesibilityDelegate或AccessibilityNodeProvider,所以我尝试了这种方法,但是没有运气。
我对Flutter还是Android的新手,希望对您有所帮助。
答案 0 :(得分:0)
Gotcha。您必须使用语义小部件包装小部件,并在有按钮的情况下定义onTap回调以使其可单击。之后,可访问性工具将能够检测视图层次结构内的小部件。