Возможно ли использовать голосовые команды для навигации вместо использования жеста смахивания?
Всем привет
В настоящее время я разрабатываю иммерсионное приложение для отображения текста на экране, и пользователь может использовать swipe_right, чтобы перейти к другому.
На самом деле, он адаптируется из образца шаблона погружения, называемого шарады (сайт разработки Google).
Моя цель, я хочу использовать голосовые команды, а не жест SWIPE.
например;
- Пользователь откроет демоверсию погружения, на экране появится первый текст.
- Пользователь хочет перейти к следующему тексту с помощью голоса "GO NEXT".
- На экране появится другой текст.
Учитывая этот пост!
Есть какой-либо способ сделать это? или любое предложение?
1 ответ
Здесь, это мое решение. Надеюсь, что это может помочь кому-то, кто ищет.
я использовал Contextual voice commands
предоставить пользователю команды "Далее", "Сохранить" и "Выход". Вы можете перейти к этому документу с сайта Google Dev, чтобы увидеть идеи сделать это.
У меня есть активность макета, чтобы показать некоторый текст, поэтому я поместил эту структуру кода. в моей деятельности макета
//contextual voice command
import com.google.android.glass.view.WindowUtils;
import android.view.Menu;
import android.view.MenuItem;
@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.save_menu_item:
Log.d("Contextual", "go save checks");
break;
case R.id.next_menu_item:
Log.d("Contextual", "go next checks");
break;
case R.id.exit_menu_item:
Log.d("Contextual", "go exit checks");
break;
default:
return true;
}
return true;
}
return super.onMenuItemSelected(featureId, item);
}
Не забудьте объявить эту строку getWindow().requestFeature(WindowUtils.FEATURE_VOICE_COMMANDS);
на ваш onCreate(); до вашего setContentView()
,
Затем я создал "папку меню" и main.xml
внутри, чтобы обеспечить мой выбор товара. Как это
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/next_menu_item"
android:title="@string/next">
</item>
<item
android:id="@+id/save_menu_item"
android:title="@string/save_this">
</item>
<item
android:id="@+id/exit_menu_item"
android:title="@string/exit">
</item>
и мой strings.xml
файл.
<resources>
<string name="next">next</string>
<string name="save_this">save</string>
<string name="exit">exit</string>
</resources>
поставить эту строку <uses-permission android:name="com.google.android.glass.permission.DEVELOPMENT" />
на ваш AndroidMenifest.xml
,
и это прекрасно работает для меня!