Compartilhamento com o Google Assistente

Os usuários de smartphones Android podem pedir ao Google Assistente para compartilhar conteúdo do app com outro usuário utilizando um comando de voz, como "Ok Google, envie isso para a Maria". Dependendo das opções do sistema do primeiro usuário, o Google Assistente pode incorporar o texto mostrado ou uma captura de tela do dispositivo ao conteúdo compartilhado.

Quando solicitado,
            o Google Assistente insere uma foto selecionada em uma mensagem.
Figura 1. O Google Assistente compartilha uma foto com um contato.

Esse método de compartilhamento costuma ser suficiente, mas é possível que os usuários que recebem conteúdo compartilhado do seu app não possam entrar nele para ver esse conteúdo. Para dar ao Google Assistente informações estruturadas sobre o conteúdo que está em primeiro plano, implemente o método onProvideAssistContent().

Esse processo ajuda a manter a estrutura dos dados quando eles são compartilhados com outro usuário. No compartilhamento de conteúdo do app, os usuários podem receber links diretos ou o conteúdo em si, em vez de texto ou uma captura de tela.

Recomendamos que você implemente o método onProvideAssistContent() em qualquer entity compartilhável no seu app.

Como fornecer conteúdo ao Google Assistente

Você só precisa implementar o método onProvideAssistContent() para a atividade final do app no fluxo de tarefas do usuário depois de invocar a ação no app. Por exemplo, em um fluxo CREATE_MONEY_TRANSFER, você implementaria esse método na tela final que mostra o recebimento. Não é necessário fazer a implementação em nenhuma tela de progresso ou prévia.

Forneça informações contextuais como um objeto JSON-LD usando o vocabulário do schema.org (links em inglês) no campo structuredData da classe AssistContent. O snippet de código a seguir mostra um exemplo de registro de conteúdo contextual:

Kotlin
override fun onProvideAssistContent(outContent: AssistContent) {
    super.onProvideAssistContent(outContent)

    // JSON-LD object based on Schema.org structured data
    outContent.structuredData = JSONObject()
            .put("@type", "MenuItem")
            .put("name", "Blueberry Crisp Iced Signature Latte")
            .put("url", "https://mysite.com/menuitems/12345a")
            .toString()
}
      
Java
@Override
public void onProvideAssistContent(AssistContent outContent) {
  super.onProvideAssistContent(outContent);

  // JSON-LD object based on Schema.org structured data
  outContent.structuredData = new JSONObject()
          .put("@type", "MenuItem")
          .put("name", "Blueberry Crisp Iced Signature Latte")
          .put("url", "https://mysite.com/menuitems/12345a")
          .toString();
}
      

Embora seja recomendável fornecer o máximo de dados possível sobre cada entity, somente estes campos são obrigatórios:

  • @type
  • .name
  • .url (obrigatório apenas se o conteúdo for endereçável por URL)

Para saber mais sobre como usar o onProvideAssistContent(), consulte o guia Como otimizar o conteúdo contextual para o Google Assistente na documentação para desenvolvedores Android.