Utilizatorii Android nu mai au nevoie să deschidă un browser și să efectueze o căutare pentru a afla despre lucrurile pe care le întâmpină în timpul utilizării unei aplicații. Pot folosi un asistent. Dacă dețineți un dispozitiv care rulează versiunea Android 6.0 sau o versiune ulterioară, s-ar putea să fiți deja familiarizați cu asistentul său implicit, inițial denumit Google Now la atingere. În ultimul timp, numele său a fost schimbat în căutare pe ecran.
Asistenții, deși sensibil la context, nu sunt de obicei foarte exacți. Pentru a îmbunătăți acuratețea, dezvoltatorii de aplicații trebuie să utilizeze API-ul Assist. În acest sfat rapid, vă voi prezenta elementele de bază ale API și vă voi ajuta să începeți să vă creați propriul asistent personalizat.
Dacă nu ați folosit niciodată asistentul de pe dispozitiv sau emulator, probabil că acesta nu este activat. Pentru ao activa, apăsați și țineți apăsat butonul Home. În dialogul care apare, apăsați pe Da, am intrat buton.
Veți putea accesa asistentul implicit din orice aplicație prin simpla apăsare lungă a butonului de pornire. Merită menționat faptul că asistentul implicit face parte din aplicația Google și funcționează cel mai bine numai după ce v-ați conectat la contul dvs. Google.
Asistentul implicit este foarte puternic. Acesta poate furniza automat informații sensibile la context bazate pe conținutul curent al ecranului. Ea face acest lucru analizând ierarhia de vedere a activității active.
Pentru ao vedea în acțiune, creați o nouă activitate în proiectul dvs. Android Studio și adăugați următoarele TextView
widget, care are numele unui roman popular, la aspectul său:
Dacă rulați aplicația dvs. acum și apăsați lung butonul de pornire, asistentul implicit va afișa carduri care sunt oarecum legate de conținutul TextView
widget.
Prin trimiterea de informații suplimentare asistentului, puteți îmbunătăți acuratețea acestuia. Pentru a face acest lucru, trebuie mai întâi să înlocuiți onProvideAssistContent ()
metoda dvs. Activitate
clasă.
@Override publice void onProvideAssistContent (AssistContent outContent) super.onProvideAssistContent (outContent);
Acum puteți folosi AssistContent
obiect pentru a trimite informații asistentului. De exemplu, dacă doriți ca asistentul să afișeze un card care permite utilizatorului să citească despre romanul de pe Goodreads, puteți utiliza setWebUri ()
metodă.
outContent.setWebUri (Uri.parse ("http://www.goodreads.com/book/show/13023.Alice_in_Wonderland"));
Iată cum arată noul card:
Ajutorul API vă permite, de asemenea, să transmiteți date structurate asistentului folosind setStructuredData ()
, care așteaptă un șir JSON-LD. Cea mai ușoară modalitate de generare a șirului JSON-LD este utilizarea funcției obiect JSON
clasa și ei a pune()
metodă.
Următorul exemplu de cod vă arată cum să generați și să trimiteți date structurate despre roman:
outContent.setStructuredData (noul JSONObject () .put ("@ type", "Book") .put ("autor", "Lewis Carroll" "," Acesta este un roman din 1865 despre o fată numită Alice "," care cade într-o gaură de iepure și "+" intră într-o lume fantezie. ") .ToString ());
Dacă alegeți să codificați manual șirul JSON-LD, vă sugerăm să vă asigurați că este valabil utilizând Instrumentul de testare structurat a datelor Google.
Dacă nu sunteți mulțumit de modul în care asistentul aplicației Google gestionează datele dvs., vă recomandăm să vă creați propriul asistent. A face acest lucru nu face prea mult efort.
Toți asistenții personalizați trebuie să aibă următoarele:
VoiceInteractionService
obiectVoiceInteractionSession
obiectVoiceInteractionSessionService
obiectMai întâi, creați o nouă clasă Java numită MyAssistantSession și să o facă o subclasă a VoiceInteractionSession
clasă. În acest moment, Android Studio ar trebui să genereze automat un constructor pentru acesta.
clasa publica MyAssistantSession extinde VoiceInteractionSession public MyAssistantSession (Context context) super (context);
Prin suprimarea onHandleAssist ()
metoda clasei, puteți defini comportamentul asistentului dvs. Pentru moment, hai să facem să analizăm șirul JSON-LD pe care l-am generat în pasul anterior și să afișăm conținutul lui ca a Paine prajita
mesaj. După cum probabil ați ghicit, pentru a prelua șirul JSON-LD, trebuie să utilizați getStructuredData ()
metodă a AssistContent
obiect.
Următorul cod vă arată cum să afișați valoarea șirului JSON-LD Descriere
cheie ca a Paine prajita
mesaj.
@Override publice void onHandleAssist (date Bundle, structură AssistStructure, conținut AssistContent) super.onHandleAssist (date, structură, conținut); încercați // Preluați datele structurate JSONObject structuredData = nou JSONObject (content.getStructuredData ()); // Afișați descrierea ca Toast Toast.makeText (getContext (), structuredData.optString ("descriere"), Toast.LENGTH_LONG) .show (); captură (JSONException e) e.printStackTrace ();
A VoiceInteractionSession
obiectul trebuie să fie instanțiat în interior VoiceInteractionSessionService
obiect. Prin urmare, creați o nouă clasă Java numită MyAssistantSessionService și să o facă o subclasă de VoiceInteractionSessionService
. În interiorul lui onNewSession ()
metoda, sunați constructorul MyAssistantSession
.
clasa publica MyAssistantSessionService extinde VoiceInteractionSessionService @Override public VoiceInteractionSession peNewSession (Bundle bundle) returneaza noua MyAssistantSession (aceasta);
Asistentul nostru are nevoie de asemenea VoiceInteractionService
obiect. De aceea, creați unul numit MyAssistantService. Nu trebuie să scrieți niciun cod în el.
clasa publica MyAssistantService extinde VoiceInteractionService
Pentru a specifica detaliile de configurare ale asistentului, trebuie să creați un fișier de metadate XML și să îl plasați în res / xml dosarul proiectului. Elementul rădăcină al fișierului trebuie să fie a
etichetă specificând numele complet calificate ale celor două VoiceInteractionService
si VoiceInteractionSessionService
subclase.
Iată un exemplu de fișier metadate:
În cele din urmă, în timp ce declarați serviciile în proiectul dvs. AndroidManifest.xml fișier, asigurați-vă că acestea necesită BIND_VOICE_INTERACTION
permisiune.
Asistentul personalizat este acum gata.
Pentru a putea utiliza asistentul personalizat, trebuie să îl setați ca asistentul implicit al dispozitivului dvs. Android. Prin urmare, deschideți Setări app și navigați la Aplicații> Aplicații implicite> Asistență și intrare vocală. Apoi faceți clic pe Asistență aplicație opțiune pentru a selecta asistentul.
În acest moment, dacă rulați aplicația dvs. și apăsați lung butonul de pornire, ar trebui să puteți vedea asistența personalizată Paine prajita
mesaj.
În acest sfat rapid, ați învățat cum să utilizați API-ul Assist pentru a interacționa cu asistenții de pe platforma Android. De asemenea, ați învățat cum să creați un asistent personalizat rudimentar. Dar un cuvânt de precauție: deoarece asistenții pot citi aproape tot textul care este prezent pe ecranul unui utilizator, trebuie să vă asigurați că asistentul dvs. personalizat gestionează datele sensibile într-un mod sigur.
Pentru a afla mai multe despre API-ul Assist, consultați documentația oficială. Și pentru a afla mai multe despre codarea de ultimă oră și API-urile pentru platforma Android, consultați câteva dintre celelalte cursuri și tutoriale de aici despre Envato Tuts+!