Suggerimento rapido come utilizzare l'API Assist di Android

Gli utenti Android oggi non devono più aprire un browser ed eseguire una ricerca per conoscere le cose su cui si imbattono mentre utilizzano un'app. Possono invece usare un assistente. Se possiedi un dispositivo con Android 6.0 o versioni successive, potresti già avere familiarità con l'assistente predefinito, inizialmente denominato Google Now on Tap. Ultimamente, il suo nome è stato cambiato in ricerca schermo.

Gli assistenti, anche se sensibili al contesto, di solito non sono molto accurati. Per migliorare la precisione, gli sviluppatori di app devono utilizzare l'API Assist. In questo suggerimento rapido, introdurrò le basi dell'API e ti aiuterò a iniziare a creare il tuo assistente personalizzato.

1. Abilitazione dell'assistente predefinito

Se non hai mai utilizzato l'assistente sul tuo dispositivo o emulatore, probabilmente non è ancora abilitato. Per abilitarlo, tieni premuto il tasto Home. Nella finestra di dialogo che si apre, premi il tasto Sì, sono dentro pulsante.

Ora potrai accedere all'assistente predefinito da qualsiasi app semplicemente premendo a lungo il pulsante Home. Vale la pena notare che l'assistente predefinito fa parte dell'app Google e funziona meglio solo dopo aver effettuato l'accesso al tuo account Google.

2. Invio di informazioni all'Assistente

L'assistente predefinito è molto potente. Può fornire automaticamente informazioni contestuali basate sul contenuto corrente dello schermo. Lo fa analizzando la gerarchia della vista dell'attività attiva.

Per vederlo in azione, crea una nuova attività nel tuo progetto Android Studio e aggiungi quanto segue TextView widget, che ha il nome di un romanzo popolare, al suo layout:

Se esegui l'app ora e premi a lungo il pulsante Home, l'assistente predefinito mostrerà le schede che sono in qualche modo correlate al contenuto del file TextView widget di.

Inviando ulteriori informazioni all'assistente, è possibile migliorarne l'accuratezza. Per fare ciò, devi prima ignorare il onProvideAssistContent () metodo del tuo Attività classe.

@Override public void onProvideAssistContent (AssistContent outContent) super.onProvideAssistContent (outContent); 

Ora puoi usare il AssistContent oggetto di inviare informazioni all'assistente. Ad esempio, se si desidera che l'assistente visualizzi una scheda che consenta all'utente di leggere il romanzo su Goodreads, è possibile utilizzare il file setWebUri () metodo.

outContent.setWebUri (Uri.parse ("http://www.goodreads.com/book/show/13023.Alice_in_Wonderland"));

Ecco come appare la nuova scheda:

L'Assist API ti consente anche di passare i dati strutturati all'assistente usando il setStructuredData () metodo, che si aspetta una stringa JSON-LD. Il modo più semplice per generare la stringa JSON-LD è usare il JSONObject classe e il suo mettere() metodo.

Il seguente codice di esempio mostra come generare e inviare dati strutturati sul romanzo:

outContent.setStructuredData (nuovo JSONObject () .put ("@ type", "Book") .put ("author", "Lewis Carroll") .put ("name", "Alice in Wonderland") .put ("descrizione "," Questo è un romanzo del 1865 su una ragazza di nome Alice, "+" che cade attraverso una tana di coniglio e "+" entra in un mondo fantastico. ") .ToString ());

Se scegli di codificare manualmente la stringa JSON-LD, ti suggerisco di assicurarti che sia valida utilizzando lo strumento di test dei dati strutturati di Google.

3. Creazione di un Assistente personalizzato

Se non sei soddisfatto del modo in cui l'assistente dell'app Google gestisce i tuoi dati, dovresti prendere in considerazione la possibilità di creare il tuo assistente. Farlo non richiede molto sforzo.

Tutti gli assistenti personalizzati devono avere quanto segue:

  • un VoiceInteractionService oggetto
  • un VoiceInteractionSession oggetto
  • un VoiceInteractionSessionService oggetto
  • un file meta-dati XML che descrive l'assistente personalizzato

Per prima cosa, crea una nuova classe Java chiamata MyAssistantSession e renderlo una sottoclasse di VoiceInteractionSession classe. A questo punto, Android Studio dovrebbe generare automaticamente un costruttore per questo.

public class MyAssistantSession estende VoiceInteractionSession public MyAssistantSession (Context context) super (context); 

Sovrascrivendo il onHandleAssist () metodo della classe, puoi definire il comportamento del tuo assistente. Per ora, facciamo solo analizzare la stringa JSON-LD che abbiamo generato nel passaggio precedente e mostrarne il contenuto come a Crostini Messaggio. Come avrai intuito, per recuperare la stringa JSON-LD, devi utilizzare getStructuredData () metodo del AssistContent oggetto.

Il codice seguente mostra come visualizzare il valore della stringa JSON-LD descrizione chiave come a Crostini Messaggio.

@Override public void onHandleAssist (Dati bundle, Struttura AssistStructure, Contenuto AssistContent) super.onHandleAssist (dati, struttura, contenuto); prova // Recupera dati strutturati JSONObject structuredData = new JSONObject (content.getStructuredData ()); // Visualizza descrizione come Toast Toast.makeText (getContext (), structuredData.optString ("description"), Toast.LENGTH_LONG) .show ();  catch (JSONException e) e.printStackTrace (); 

UN VoiceInteractionSession l'oggetto deve essere istanziato all'interno di a VoiceInteractionSessionService oggetto. Pertanto, creare una nuova classe Java chiamata MyAssistantSessionService e renderlo una sottoclasse di VoiceInteractionSessionService. Al suo interno onNewSession () metodo, chiama il costruttore di MyAssistantSession.

public class MyAssistantSessionService estende VoiceInteractionSessionService @Override public VoiceInteractionSession onNewSession (Bundle bundle) return new MyAssistantSession (this); 

Anche il nostro assistente ha bisogno di un VoiceInteractionService oggetto. Pertanto, creane uno chiamato MyAssistantService. Non devi scrivere alcun codice al suo interno.

MyAssistantService di classe pubblica estende VoiceInteractionService 

Per specificare i dettagli di configurazione dell'assistente, è necessario creare un file di metadati XML e inserirlo nel file res / xml cartella del tuo progetto. L'elemento radice del file deve essere a tag che specifica i nomi completi di entrambi VoiceInteractionService e il VoiceInteractionSessionService sottoclassi.

Ecco un file di metadati di esempio:

 

Infine, mentre dichiari i servizi nel tuo progetto AndroidManifest.xml file, assicurarsi che richiedono il BIND_VOICE_INTERACTION autorizzazione.

       

Il tuo assistente personalizzato è ora pronto.

4. Utilizzo dell'Assistente personalizzato

Per poter utilizzare l'assistente personalizzato, devi impostarlo come assistente predefinito del tuo dispositivo Android. Pertanto, apri il impostazioni app e naviga verso App> App predefinite> Assist e input vocale. Quindi, fare clic su Assist app opzione per selezionare il tuo assistente.

A questo punto, se esegui la tua app e premi a lungo il pulsante Home, dovresti essere in grado di vedere l'assistente personalizzato Crostini Messaggio.

Conclusione

In questo suggerimento rapido, hai imparato come utilizzare l'API Assist per interagire con gli assistenti sulla piattaforma Android. Hai anche imparato a creare un assistente personalizzato rudimentale. Ma una parola di cautela: poiché gli assistenti possono leggere quasi tutto il testo presente sullo schermo di un utente, è necessario assicurarsi che l'assistente personalizzato gestisca i dati sensibili in modo sicuro.

Per ulteriori informazioni sull'API Assist, consultare la documentazione ufficiale. E per saperne di più sulla codifica all'avanguardia e sulle API per la piattaforma Android, dai un'occhiata ad alcuni dei nostri altri corsi ed esercitazioni qui su Envato Tuts+!