Enviar atalhos dinâmicos ao Google Assistente

Os atalhos do Android fornecem aos usuários métodos para realizar uma ação ou acessar conteúdo em um aplicativo. O Google Assistente pode sugerir proativamente os atalhos dinâmicos do Android para os usuários em momentos relevantes, permitindo que os usuários descubram e reproduzam facilmente seus com funcionalidade ativada por voz.

Por exemplo, você pode enviar um atalho para cada nota criada por um usuário seu app de anotações. Você faz Links dinâmicos qualificados para exibição nas plataformas do Google, como o Google Assistente, adicionando a biblioteca Google Shortcuts Integration Jetpack ao projeto. Essa biblioteca permite que o Google Assistente use os atalhos dinâmicos que você envia usando o A classe ShortcutManagerCompat, que é um wrapper do Jetpack para os API ShortcutManager.

Quando você usa a biblioteca Google Shortcuts Integration no seu app, os atalhos enviados ao Google ficam visíveis para os usuários como sugestões de atalhos de voz no app Google Assistente. Você pode enviar um número ilimitado de atalhos dinâmicos para o Google Assistente usando o método pushDynamicShortcut() da biblioteca ShortcutManagerCompat.

Configurar seu projeto de desenvolvimento

Para adicionar a funcionalidade de atalhos dinâmicos ao app, é necessário A biblioteca Google Shortcuts Integration, que é uma biblioteca do Android Jetpack. Esta seção descreve como configurar seu projeto de desenvolvimento de aplicativos para incluir essa biblioteca.

Para adicionar essa biblioteca do Jetpack e configurar seu projeto, siga estas etapas:

  1. Atualize o arquivo gradle.properties para processar bibliotecas do Jetpack:

    gradle.properties

    android.useAndroidX=true
    # Automatically convert third-party libraries to use AndroidX
    android.enableJetifier=true
    
  2. Adicione as dependências da biblioteca do Jetpack ao build.gradle:

    app/build.gradle

    dependencies {
     implementation "androidx.core:core:1.6.0"
     implementation "androidx.core:core-google-shortcuts:1.0.1"
     ...
    }
    

    No exemplo de código anterior, você lista duas bibliotecas do Jetpack como dependências. A biblioteca androidx.core:core:1.6.0 contém as ShortcutManagerCompat, que você usa para enviar atalhos dinâmicos Google.

    A androidx.core:core-google-shortcuts:1.0.1 é a biblioteca Google Shortcuts Integration. Essa biblioteca não contém APIs voltadas para o desenvolvedor. Ao adicioná-lo como uma dependência, você permite que o Google Assistente acesse atalhos dinâmicos enviados usando a classe ShortcutManagerCompat.

Enviar atalhos dinâmicos

Para enviar atalhos dinâmicos qualificados para exibição no Google Assistente, faça o seguinte: crie o atalho usando ShortcutInfoCompat.Builder(). .

Depois, envie o atalho usando a tecla ShortcutManagerCompat.pushDynamicShortcut(). Os atalhos são enviados sempre que um usuário conclui uma ação relevante no seu app. O exemplo a seguir envia um atalho sempre que um usuário faz um pedido em um aplicativo de entrega de comida:

ExampleOrderActivity

Kotlin

// Define the dynamic shortcut for a menu item
var intent = Intent(context, DisplayOrderActivity::class.java)
intent.action = Intent.ACTION_VIEW
var shortcutInfo = ShortcutInfoCompat.Builder(context, id)
    .setShortLabel("Cappuccino")
    .setLongLabel("Order another cappuccino")
    .addCapabilityBinding(
        "actions.intent.ORDER_MENU_ITEM", "menuItem.name", Arrays.asList("cappuccino")
    )
    .setIntent(intent) // Push the shortcut
    .build()

// Push the shortcut
ShortcutManagerCompat.pushDynamicShortcut(context, shortcutInfo)

Java

// Define the dynamic shortcut for a menu item
Intent intent = new Intent(context, DisplayOrderActivity.class);
intent.setAction(Intent.ACTION_VIEW);

ShortcutInfoCompat.Builder shortcutInfo = new ShortcutInfoCompat.Builder(context, id)
    .setShortLabel("Cappuccino")
    .setLongLabel("Order another cappuccino")
    .addCapabilityBinding(
      "actions.intent.ORDER_MENU_ITEM", "menuItem.name", Arrays.asList("cappuccino"))
    .setIntent(intent)
    .build();

// Push the shortcut
ShortcutManagerCompat.pushDynamicShortcut(context, shortcutInfo);

O id mencionado no método ShortcutInfoCompat.Builder no exemplo de código anterior define o shortcutId do objeto de atalho resultante. Este id precisa ser um literal de string exclusivo. Para ver mais detalhes, consulte a documentação da Android Shortcuts.

No exemplo anterior, o método addCapabilityBinding vincula o atalho dinâmico a um elemento capability do mesmo android:name definido em shortcuts.xml. Esse método permite associar o atalho a um parâmetro semântico de intent integrada (BII, na sigla em inglês).

Às vezes, os atalhos dinâmicos são enviados sem um parâmetro de BII específico. associação. Quando invocado pelo usuário, o Google Assistente aciona o elemento intent definido no atalho para realizar a ação. O exemplo abaixo mostra um atalho dinâmico sem associação de parâmetro:

Kotlin

var intent: Intent = Intent(context, DisplayOrderActivity::class.java)
intent.setPackage(this, "com.sample.app")
intent.setAction(Intent.ACTION_VIEW)

var shortcutInfo: ShortcutInfoCompat = ShortcutInfoCompat.Builder(context, id)
    .setShortLabel("Order coffee")
    .setLongLabel("Order a cup of coffee")
    .addCapabilityBinding("actions.intent.ORDER_MENU_ITEM")
    .setIntent(intent)
    .build()

ShortcutManagerCompat.pushDynamicShortcut(context, shortcutInfo);

Java

Intent intent = new Intent(context, DisplayOrderActivity.class);
intent.setPackage(this, "com.sample.app");
intent.setAction(Intent.ACTION_VIEW);

ShortcutInfoCompat shortcutInfo = new ShortcutInfoCompat.Builder(context, id)
  .setShortLabel("Order coffee")
  .setLongLabel("Order a cup of coffee")
  .addCapabilityBinding("actions.intent.ORDER_MENU_ITEM")
  .setIntent(intent)
  .build();

ShortcutManagerCompat.pushDynamicShortcut(context, shortcutInfo);

Testar atalhos dinâmicos com o Google Assistente

Quando o Google Assistente aceita um atalho dinâmico do seu aplicativo, o atalho estará qualificado para aparecer como uma sugestão de Atalho de voz na app Google Assistente para Android. O app Google Assistente sugere os atalhos mais recentes enviados pelo seu app.

Para testar os atalhos dinâmicos com o Google Assistente, siga estas etapas:

  1. Crie uma prévia das Ações no app e prepare o dispositivo de teste ou emulador para testar ações seguindo a mesma de configuração do plug-in do Google Assistente.
  2. Abra seu app e defina um atalho dinâmico para enviar. Em seguida, conclua uma ação. Por exemplo, se você enviar um atalho sempre que uma nota for criada no app de anotações, crie uma nova.
  3. Abra Atalhos no app Configurações do Google Assistente no seu dispositivo. Seu o atalho dinâmico aparece na lista do seu app.