我开发的应用程序可以回答某些查询(电话号码查询,也可能是其他查询)。
Google在Android 6上推出了一项新功能,名为" Google Now On Tap" (AKA" Assist API"),允许用户查询屏幕上显示的内容(通过长按主页按钮或说出某些内容触发),而无需键入任何内容。
Google为其提供了开发人员教程here
我无法找到任何代码段来展示如何为其准备应用。
我唯一注意到的是我可以从Application类扩展,并在其中添加OnProvideAssistDataListener,并注册到它。
但是,它打开了很多关于如何做的问题。
可悲的是,因为这个话题很新,我几乎找不到任何关于它的内容,所以我想在这里提出问题。
1)这个新功能是否有任何样本或至少有一个更详细的教程?
2)在文档中说:
在大多数情况下,实施辅助功能支持将启用 获得所需信息的助手。这包括提供 android:contentDescription属性,填充 AccessibilityNodeInfo用于自定义视图,确保自定义ViewGroups 正确地揭露他们的孩子,并遵循最佳实践 “使应用程序可访问”中描述。
为什么以及如何使用应用的辅助功能?与公开子视图(或视图)有什么关系?如果应用程序尚未运行,那么它甚至可能与视图有关(因为该功能在任何应用程序上都可以激活)。
我认为仅当前景应用程序是我的应用程序时才会调用它,但如果是这样,我如何实际提供针对所有应用程序显示的查询,具体取决于输入内容?
3)从Application扩展的类是否应该实现OnProvideAssistDataListener?如果是这样,为什么需要注册呢?如果没有,Google-Now-On-Tap如何使用呢?它不能只打开所有具有此类类别的应用程序,并查看它们是否注册...
4)文档有一个我不明白的样本片段:
@Override
public void onProvideAssistContent(AssistContent assistContent) {
super.onProvideAssistContent(assistContent);
String structuredJson = new JSONObject()
.put("@type", "MusicRecording")
.put("@id", "example.comhttps://example.com/music/recording")
.put("name", "Album Title")
.toString();
assistContent.setStructuredData(structuredJson);
}
新功能对每个键有什么作用?是应用程序还是Google-Now-On-Tap?我有什么选择呢? 这是我在哪里定义我的应用程序是否可以处理该功能建议我的内容? AssistContent应该是我看到的输入,并决定我的应用程序是否可以处理它或忽略它?