Возможно ли использовать голосовые команды для навигации вместо использования жеста смахивания?

Всем привет

В настоящее время я разрабатываю иммерсионное приложение для отображения текста на экране, и пользователь может использовать swipe_right, чтобы перейти к другому.

На самом деле, он адаптируется из образца шаблона погружения, называемого шарады (сайт разработки Google).

Моя цель, я хочу использовать голосовые команды, а не жест SWIPE.

например;

  1. Пользователь откроет демоверсию погружения, на экране появится первый текст.
  2. Пользователь хочет перейти к следующему тексту с помощью голоса "GO NEXT".
  3. На экране появится другой текст.

Учитывая этот пост!

Есть какой-либо способ сделать это? или любое предложение?

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,

и это прекрасно работает для меня!

Другие вопросы по тегам