Construtores comuns para objetos indexáveis

Adesivos

Esta é uma visão geral das propriedades mais importantes a serem incluídas ao indexar adesivos ou pacotes de adesivos para integração com o Gboard. Veja o exemplo de indexação de aplicativos no Github para ver um exemplo.

Propriedade Descrição Exemplo
name Nome ou palavra-chave usada para pesquisa — não exibido. "Pacote de adesivos do Snoopy"
url URL com link para o adesivo ou pacote de adesivos no aplicativo. "http://adesivo/pack/canonical/url/snoopy"
image O adesivo ou gráfico do pacote de adesivos. Para obter a qualidade de imagem ideal, use imagens quadradas com tamanho de 320 pixels ou 500 pixels. "http://link/para/a/imagem/tchau"
description Etiqueta de acessibilidade para seu adesivo ou pacote de adesivos. "Um pacote de adesivos do Snoopy"

Exemplo: pacote de adesivos

// Build and index the sticker objects on first run after update or install
// to minimize lag between sticker install and stickers surfacing in Gboard.

FirebaseAppIndex.update(new Indexable.Builder("StickerPack")
   .setName("Snoopy Pack")
   .setImage("content://sticker/pack/canonical/image")
   // see: Support links to your app content section
   .setUrl("http://sticker/pack/canonical/url/snoopy")
   // Set the accessibility label for the sticker pack.
   .setDescription("A sticker pack of Snoopy")
   .put("hasSticker",
        new Indexable.Builder("Sticker")
          .setName("Hey")
          .setImage("http://link/to/the/image/hey")
          .setDescription("A Snoopy hey sticker.")
          .build(),
       new Indexable.Builder("Sticker")
          .setName("Bye")
          .setImage("http://link/to/the/image/bye")
          .setDescription("A Snoopy bye sticker.")
          .build())
   .build());

Exemplo: adesivo individual

Indexable[] stickers = new Indexable[]{
      new Indexable.Builder("Sticker")
   .setName("Hey")
   .setImage("http://www.snoopysticker.com?id=1234")
   // see: Support links to your app content section
   .setUrl("http://sticker/canonical/image/hey")
   // Set the accessibility label for the sticker.
   .setDescription("A sticker for hi")
   // Add search keywords.
   .put("keywords", "hey", "snoopy", "hi", "hello")
   .put("isPartOf",
        new Indexable.Builder("StickerPack")
          .setName("Snoopy Pack"))
          .build())
   .build()),
new Indexable.Builder("Sticker")
   .setName("Bye")
   .setImage("http://www.snoopysticker.com?id=4567")
   // see: Support links to your app content section
   .setUrl("http://sticker/canonical/image/bye")
   // Set the accessibility label for the sticker.
   .setDescription("A sticker for Bye")
   // Add search keywords.
   .put("keywords", "bye", "snoopy", "see ya", "good bye")
   .put("isPartOf",
        new Indexable.Builder("StickerPack")
          .setName("Snoopy Pack")
          .build())
   .build())};
// Make sure we update stickers in batch
FirebaseAppIndex.update(stickers);

Mensagem

Esta é uma visão geral das propriedades mais importantes que devem ser especificadas por um aplicativo ao indexar uma mensagem.

Propriedade Descrição Exemplo
url O URL vinculado à mensagem no aplicativo. "meuapp://mensagens/42"
name A linha de assunto da mensagem, ou diretamente a própria mensagem, se não tiver uma linha de assunto separada. "Re: almoço"
text Opcional. O corpo da mensagem, se aplicável. Para mensagens do tipo mensagens instantâneas sem uma linha de assunto separada, use "nome" (veja acima). "Você está livre para almoçar?"
dateReceived A hora em que a mensagem foi recebida, para mensagens recebidas. nova data (2016, 6, 2, 23, 43, 00)
dateSent A hora em que a mensagem foi enviada, para mensagens enviadas. nova data (2016, 6, 2, 23, 43, 00)
isPartOf.id Um ID da conversa ou thread do qual a mensagem faz parte. "42"
sender O remetente da mensagem.
sender.name O nome do remetente. "Alice"
sender.url Opcional. O URL com link para a pessoa no aplicativo. "http://example.net/profiles/alice"
sender.image Opcional. Uma imagem do remetente. Pode ser usado um URL da web ou um URI de conteúdo. "http://example.net/alice.jpg"
sender.email Opcional. O endereço de e-mail do remetente. "alice@exemplo.net"
sender.telephone Opcional. O número de telefone do remetente. "+16502530000"
sender.isSelf Indicação se o usuário é o remetente. O padrão é falso. falso
recipient Um ou vários destinatários da mensagem.
recipient.name O nome do destinatário. "Prumo"
recipient.url Opcional. O URL com link para a pessoa no aplicativo. "http://example.net/profiles/bob"
recipient.image Opcional. Uma imagem do destinatário. Pode ser usado um URL da web ou um URI de conteúdo. "http://example.net/bob.jpg"
recipient.email Opcional. O endereço de e-mail do remetente. "bob@exemplo.net"
recipient.telephone Opcional. O número de telefone do remetente. "+16502530000"
recipient.isSelf Indicação se o usuário é o destinatário. O padrão é falso. verdadeiro
messageAttachment Opcional. Um ou vários anexos da mensagem.
messageAttachment.name O nome do anexo da mensagem. "Adesivo"
messageAttachment.image Uma imagem que representa o anexo. Pode ser usado um URL da web ou um URI de conteúdo. "http://example.net/stickers/23.png"

Exemplo: mensagem recebida

Indexable message = Indexables.messageBuilder()
    .setUrl("myapp://messages/42")
    .setText("Are you free for lunch?")
    .setDateReceived(new Date(2016, 6, 2, 23, 44, 00))
    .setIsPartOf(Indexables.conversationBuilder().setId("42")
    .setSender(Indexables.personBuilder()
        .setName("Alice")
        .setImage("http://example.net/alice.jpg")
        .setEmail("alice@example.net")
        .setTelephone("+16502530000"))
    .setRecipient(Indexables.personBuilder()
        .setName("Bob")
        .setImage("http://example.net/bob.jpg")
        .setEmail("bob@people.net")
        .setTelephone("+16502530000")
        .setIsSelf(true))
    .build();
 

Para mensagens de email, use Indexables.emailMessageBuilder() . Não há diferença nos campos suportados, mas a UI do resultado será diferente (por exemplo, destacando a linha de assunto do e-mail).

Observação

Esta é uma visão geral das propriedades mais importantes que devem ser especificadas por um aplicativo ao indexar uma nota.

Propriedade Descrição Exemplo
url O URL com link para a nota no aplicativo. "meuapp://notas/42"
name O título da nota, ou diretamente o próprio texto da nota, caso não possua um título separado. "Lista de compras"
text Opcional. O texto da nota, se aplicável. Para notas sem título separado, use "nome" (veja acima). "bife, macarrão, vinho"
image Uma imagem representando a nota. Pode ser usado um URL da web ou um URI de conteúdo. "http://example.net/shopping.jpg"
dateCreated A hora de criação da nota. nova data (2016, 6, 2, 23, 43, 00)
author Opcional. O autor da nota.
author.name O nome do autor da nota. "Prumo"

Exemplo: Nota

Indexable note = Indexables.noteDigitalDocumentBuilder()
    .setUrl("myapp://notes/42")
    .setName("Shopping list")
    .setText("steak, pasta, wine")
    .setImage("http://example.net/shopping.jpg")
    .setDateCreated(new Date(2016, 6, 2, 23, 43, 00))
    .build();