Dokumentace

Antelli SDK bylo navržené pro maximální jednoduchost, proto i dokumentace je relativně stručná. Tak se do toho pustíme.

AntelliPlugin

Třída AntelliPlugin je obyčejná Service, která zprostředkovává komunikaci s Antelli a obsahuje několik abstraktních metod.

boolean canAnswer (Question question) { ... }

Touto metodou říkáš Antelli, zda Tvůj plugin umí odpovědět na konkrétní otázku. Typicky bude obsahovat sadu podmínek a operace s textem. Více o třídě Question níže. Tato metoda by neměla vykonávat časově náročné operace.

void answer(Question question, IAnswerCallback callback){ ... }

Na vstupu je ta stejná Question jako u canAnswer(), s tím rozdílem, že tato metoda vrací už konkrétní odpověď pro uživatele, viz třída Answer.  Volání je asynchronní, odpověď se vrací do Antelli metodou callback.publish(Answer). Každá z odpovědí může obsahovat příkaz typu Command a když uživatel na odpověď klikne, zavolá se následující metoda.

void command(Command command, IAnswerCallback callback) { ... }

V této metodě můžeš zpracovat příkaz, když uživatel klikne na některou z odpovědí nebo tip, který v sobě nese command.

Class getSettingsActivity() { ... }

Pokud budeš chtít, aby si uživatel u Tvé služby mohl něco nastavit, tak v této metodě definuješ třídu, jaká to bude Activity (např. return SettingsActivity.class).

void reset() { ... }

V případě, že si během konverzace budeš ukládat nějaké proměnné, v této metodě je nastav do původních hodnot. Je důležité, aby Antelli uvedla Tvojí službu do původního stavu pro další použití.

Question

Třída, která obsahuje uživatelův dotaz a základní metody pro jeho zpracování. Uživatelův dotaz získáš metodou getQuery().

boolean equals(String string) { ... }

Porovnává otázku s textem (case insensitive).

boolean contains(String string) { ... }
boolean containsOne(String... strings) { ... }
boolean containsAll(String... strings) { ... }

Zjišťuje výskyt řetězce nebo řetězců v otázce.

boolean containsWord(String word) { ... }
boolean containsOneWord(String... words) { ... }
boolean containsAllWords(String... words) { ... }

Zjišťuje výskyt slova nebo několika slov v otázce ().

Answer

Každá Answer může obsahovat jednu nebo více AnswerItem. Pro jednoduché odpovědi je připravený konstruktor Answer(String text).

void setAutoListen(boolean autoListen) { ... }

Touto metodou můžeš nastavit odpověď tak, aby Antelli začala automaticky naslouchat po tom, co odpověď přečte. Hodí se hlavně na plynulou konverzaci např. během jízdy autem.

Answer Item

AnswerItem je hlavní objekt, který ponese informace z pluginu k uživateli. Skládá se z title, subtitle, text, image, type a command (Parametry nejsou povinné). Důležitou metodou je setSpeech(String text), která předá text hlasové syntéze. Parametr type definuje, jak bude položka odpovědi vypadat, k dispozici zatím typy TYPE_CONVERSATION, TYPE_CARD, TYPE_CARD_IMAGE, TYPE_GALLERY.

Command

Command v sobě nese informaci, co se má stát po kliknutí na danou položku. Pokud AnswerItem obsahuje command, tak po kliknutí se volá metoda command(Command, IAnswerCallback) s tímto parametrem. Hlavním parametrem objektu Command je String action, na základě kterého pak můžeš provádět rozlišné operace, další parametry si můžeš do Commandu přidat např. metodou putString().

A to je vše! Kdyby sis s něčím nevěděl rady, zeptej se v komunitě na Google+.