Asistan'a dinamik kısayollar aktarın

Android kısayolları, kullanıcıların hızlı bir şekilde yöntemleri kullanabilirsiniz. Asistan, Android dinamik kısayollarını şuradaki kullanıcılara proaktif olarak önerebilir: Böylece kullanıcılar, alakalı anlarda kolayca bulup tekrar oynatabilirler. ses özellikli işlevsellik.

Örneğin, bir kullanıcının uygulamanız olabilir. Çok iyi gidiyorsunuz, Google platformlarında gösterilmeye uygun dinamik bağlantılar (ör. Asistan, projenize Google Kısayolları Entegrasyonu Jetpack kitaplığını ekleyerek. Bu kitaplık, Asistan'ın için bir Jetpack sarmalayıcı olan ShortcutManagerCompat sınıfı ShortcutManager API.

Uygulamanızda Google Kısayolları Entegrasyonu kitaplığını kullandığınızda, Google'a aktardığınız kısayollar, kullanıcılar tarafından sesli kısayol önerileri olarak görülebilir açın. Şuraya sınırsız sayıda dinamik kısayol aktarabilirsiniz: Şu cihazın pushDynamicShortcut() yöntemini kullanan Asistan ShortcutManagerCompat kitaplığı.

Geliştirme projenizi yapılandırma

Uygulamanıza dinamik kısayollar işlevi eklemek için Android Jetpack kitaplığı olan Google Kısayolları Entegrasyonu kitaplığı. Bu bölümde, uygulama geliştirme projenizi aşağıdakileri içerecek şekilde nasıl yapılandıracağınız açıklanmaktadır: bu kitaplıktan faydalanabilirsiniz.

Bu Jetpack kitaplığını eklemek ve projenizi yapılandırmak için şu adımları izleyin:

  1. gradle.properties dosyanızı Jetpack kitaplıklarını işleyecek şekilde güncelleyin:

    gradle.properties

    android.useAndroidX=true
    # Automatically convert third-party libraries to use AndroidX
    android.enableJetifier=true
    
  2. Jetpack kitaplığı bağımlılıklarını build.gradle dosyanıza ekleyin:

    app/build.gradle

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

    Önceki örnek kodda iki Jetpack kitaplığını aşağıdaki gibi ve bildirmeyi konuştuk. androidx.core:core:1.6.0 kitaplığı şunu içerir: Dinamik kısayolları aktarmak için kullandığınız ShortcutManagerCompat sınıfı Google'a dokunun.

    androidx.core:core-google-shortcuts:1.0.1, Google'ın Kısayollar Entegrasyonu kitaplığı. Bu kitaplıkta geliştiriciye yönelik içerik yok API'ye gidin. Bunu bir bağımlılık olarak ekleyerek Asistan'ın şunları almasını sağlarsınız: ShortcutManagerCompat sınıfını kullanarak aktardığınız dinamik kısayollar.

Push dinamik kısayolları

Asistan'da gösterilmeye uygun dinamik kısayolları aktarmak için: önce ShortcutInfoCompat.Builder() tuşunu kullanarak kısayolu oluşturursunuz sınıfını kullanır.

Ardından kısayolu kullanarak ShortcutManagerCompat.pushDynamicShortcut() yöntemini çağırın. Kısayollar aktarılır Kullanıcı uygulamanızda alakalı bir işlem yaptığında Aşağıdaki örnek kod, kullanıcı bir yemek siparişi uygulamasında her sipariş verdiğinde kısayol gönderir:

ÖrnekSipariş Etkinliği

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);

Yukarıdaki ShortcutInfoCompat.Builder yönteminde referans verilen id örnek kod, sonuç olarak elde edilen kısayol nesnesinin shortcutId öğesini tanımlar. Bu id benzersiz bir değişmez dize değeri olmalıdır. Ayrıntılar için Android Kısayolları dokümanları.

Yukarıdaki örnekte addCapabilityBinding yöntemi, içinde tanımlanmış aynı android:name öğesinin capability kısayolu shortcuts.xml. Bu yöntem, kısayolu bir anlamsal yerleşik intent (BII) parametresi.

Dinamik kısayollar bazen belirli bir BII parametresi olmadan aktarılır ilişkilendirmesine yardımcı olur. Asistan, kullanıcı tarafından çağrıldığında, tanımlanan intent öğesini tetikler tuşuna basarak işlemi tamamlayabilirsiniz. Aşağıdaki örnekte bir dinamik reklam parametre ilişkilendirmesi olmayan kısayol:

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);

Dinamik kısayolları Asistan'la test edin

Google Asistan, bu kısayol, Asistan Android uygulaması. Asistan uygulaması en son kısayolları önerir aktarılmıştır.

Dinamik kısayollarınızı Asistan'la test etmek için şu adımları uygulayın:

  1. Uygulama İşlemlerinizin bir önizlemesini oluşturun ve test cihazınızı hazırlayın veya emülatörü kullanarak aynı yolu izleyerek Google Asistan Eklentisi ile ilgili kurulum şartlarına bakın.
  2. Uygulamanızı açın ve aktarmak için dinamik bir kısayol tanımlayın. Ardından bir işlem tamamlayın. Örneğin, not alma uygulamanızda oluşturulur, ardından yeni bir not oluşturun.
  3. Cihazınızdaki Asistan Ayarları uygulamasında Kısayollar'ı açın. Sizin dinamik kısayol uygulamanızın listesinde görünür.