这是我的代码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().requestFeature(WindowUtils.FEATURE_VOICE_COMMANDS);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_sample);
}
@Override
public boolean onCreatePanelMenu(int featureId, Menu menu) {
if (featureId == WindowUtils.FEATURE_VOICE_COMMANDS) {
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) {
switch (item.getItemId()) {
case R.id.dogs_menu_item:
// handle top-level dogs menu item
break;
default:
return true;
}
return true;
}
// Good practice to pass through to super if not handled
return super.onMenuItemSelected(featureId, item);
}
我正在尝试从我的活动中启用上下文菜单。。上面的代码"ok glass"应该显示在我活动的底部,但它没有显示。我使用的玻璃版本是21.3。
您使用任何主题吗?
在清单中,删除android:theme="@style/AppTheme"
。
例如,更改
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
至
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name">
在更改为默认主题后,我想您可能不需要requestWindowFeature(Window.FEATURE_NO_TITLE);
,并且应该显示"ok glass"。
您的代码似乎是正确的,但您尝试过实现菜单吗?
我不确定,但如果没有像onCreatePanelMenu
这样的正确覆盖功能,上下文语音命令可能无法激活。
以下是来自Google的文档:上下文语音命令
在Service类中发布liveCard之前,您必须设置以下内容:
liveCard.setVoiceActionEnabled(true);
您的代码似乎是正确的:/
您是否尝试过使用Cards
构建Ui而不是使用setContentView(R.layout.activity_sample);
可能是这导致了这个问题。