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.

canAnswer

void canAnswer (Question question, ICanAnswerCallback callback) { ... }

Tato metoda ze zavolá ve chvíli, kdy uživatel řekne svůj dotaz a vy, prostřednictvím metody callback.canAnswer(boolean) říkáte Antelli, zda váš plugin umí na tuto otázku odpovědět. Typicky tato metoda bude obsahovat sadu podmínek a operace s textem. Základní funkce na zpracování textu obsahuje přímo třída Question.

answer

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

Pokud v metodě canAnswer vrátíte true, tak se provolá tato metoda, kde budete vracet už konkrétní odpověď pro uživatele, viz třída Answer.  Odpověď se vrací do Antelli metodou callback.answer(Answer). Volitelně může každá AnswerItem nebo Hint obsahovat příkaz typu Command. Když potom uživatel na odpověď klikne, zavolá se následující metoda.

command

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

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

getSettingsActivity

Class getSettingsActivity() { ... }

Pokud budete chtít, aby si uživatel u vašeho pluginu mohl něco nastavit, tak v této metodě definujete třídu, jaká to bude Activity (např. return SettingsActivity.class).

reset

void reset() { ... }

V případě, že si během konverzace budete ukládat nějaké stavové proměnné, v této metodě jim nastavte původní hodnoty. Je důležité, aby Antelli uvedla vaší 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áte metodou getString().

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.

String removeWords(String... words) { ... }

Odstraní z otázky daná slova.

Answer

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

setAutoListen

void setAutoListen(boolean autoListen) { ... }

Touto metodou můžete říct Antelli, aby 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, secondaryImage, type a command (Parametry nejsou povinné). Důležitou metodou je setSpeech(String text), která předá text hlasové syntéze k mluvení. Parametr type definuje, jak bude položka odpovědi vypadat, k dispozici jsou zatím typy TYPE_CONVERSATION, TYPE_CARD, TYPE_CARD_IMAGE, TYPE_CAROUSEL, další budou přibývat.

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ůžete provádět následné akce. Další parametry si můžete do commandu přidat např. metodou putString(). Nově jsou podporované také Intenty (setIntent(Intent)), ale z bezpečnostních důvodů pouze typu ACTION_VIEW

A to je vše. Jak vidíte, implementace je velmi jednoduchá. Pokud si nebudete vědět rady, napište na podpora@antelli.cz