我想知道如何在卡上列出所有可用的上下文命令,其中“Ok,glass”位于页脚并准备好接受命令。 我的应用程序有超过10个上下文命令,用户可能不记得所有命令。
下面的代码只显示“Ok glass”作为页脚而页脚上方没有任何内容。但是,命令列表将在“Ok glass”命令后面显示。 我希望同时显示列表和“ok glass”。
请告知。
public class MenuActivity extends Activity {
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
// Requests a voice menu on this activity. As for any other
// window feature, be sure to request this before
// setContentView() is called
getWindow().requestFeature(WindowUtils.FEATURE_VOICE_COMMANDS);
setContentView(R.layout.start);
}
@Override
public boolean onCreatePanelMenu(int featureId, Menu menu) {
if (featureId == WindowUtils.FEATURE_VOICE_COMMANDS||
featureId == Window.FEATURE_OPTIONS_PANEL) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
// Pass through to super to setup touch menu.
return super.onCreatePanelMenu(featureId, menu);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
if (featureId == WindowUtils.FEATURE_VOICE_COMMANDS||
featureId == Window.FEATURE_OPTIONS_PANEL) {
switch (item.getItemId()) {
case R.id.Atrig_menu_item:
// handle A trigger
break;
case R.id.Btrig_menu_item:
// handle B trigger
break;
case R.id.Ctrig_menu_item:
// handle C trigger
break;
case R.id.Dtrig_menu_item:
// handle D trigger
break;
case R.id.Etrig_menu_item:
// handle E trigger
this.finish();
default:
return true;
}
return true;
}
// Good practice to pass through to super if not handled
return super.onMenuItemSelected(featureId, item);
}
}
答案 0 :(得分:0)
在XE 21中,您无法更改上下文语音命令的行为。
如果要显示所有可用选项,在通过说“Ok Glass”激活Contextual Voice命令之前,您必须创建一个显示菜单R.menu.main
内容的布局。
但即使您使用R.menu.main
中的所有项目创建布局,当您在应用中说“Ok Glass”时,上下文语音命令也会再次显示您的菜单。
最好的方法是在主要布局中显示一些R.layout.start
的文本或信息,然后在用户说出“Ok glass”时让Contextual Voice命令显示菜单。
以下是一个链接,向您展示如何构建简单的布局:Tutorial Linear Layout