Asistan'a dinamik kısayollar aktarın

Android kısayolları, kullanıcılara bir işlem gerçekleştirmek veya uygulamadaki içeriğe erişmek için hızlı yöntemler sağlar. Asistan, Android dinamik kısayollarını alakalı zamanlarda kullanıcılara proaktif bir şekilde önererek kullanıcıların, sesle etkinleştirilen işlevinizi kolayca keşfetmelerini ve tekrar oynatmalarını sağlar.

Örneğin, bir kullanıcının not alma uygulamanızda oluşturduğu her not için bir kısayol gönderebilirsiniz. Projenize Google Kısayollar Entegrasyonu Jetpack kitaplığını ekleyerek dinamik bağlantıları Asistan gibi Google yüzeylerinde gösterilmeye uygun hale getirebilirsiniz. Bu kitaplık, Asistan'ın ShortcutManagerCompat sınıfını (ShortcutManager API için Jetpack sarmalayıcısı) kullanarak gönderdiğiniz dinamik kısayolları almasına olanak tanır.

Uygulamanızda Google Kısayollar Entegrasyonu kitaplığını kullandığınızda, Google'a gönderdiğiniz dinamik kısayollar kullanıcılar tarafından Asistan uygulamasında sesli kısayol önerisi olarak görünür. ShortcutManagerCompat kitaplığının pushDynamicShortcut() yöntemini kullanarak Asistan'a sınırsız sayıda dinamik kısayol aktarabilirsiniz.

Geliştirme projenizi yapılandırma

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

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

  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 cihazınıza ekleyin:

    app/build.gradle

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

    Yukarıdaki örnek kodda bağımlılık olarak iki Jetpack kitaplığı listelersiniz. androidx.core:core:1.6.0 kitaplığı, Google'a dinamik kısayollar aktarmak için kullandığınız ShortcutManagerCompat sınıfını içerir.

    androidx.core:core-google-shortcuts:1.0.1, Google Kısayollar Entegrasyonu kitaplığıdır. Bu kitaplıkta geliştiriciye yönelik API yoktur. Bunu bağımlılık olarak eklediğinizde, Asistan'ın ShortcutManagerCompat sınıfını kullanarak aktardığınız dinamik kısayolları kullanmasına olanak sağlarsınız.

Push dinamik kısayolları

Asistan'da görüntülenmeye uygun dinamik kısayolları aktarmak için önce ShortcutInfoCompat.Builder() sınıfını kullanarak kısayolu oluşturmanız gerekir.

Daha sonra ShortcutManagerCompat.pushDynamicShortcut() yöntemini kullanarak kısayolu aktarırsınız. Bir kullanıcı, uygulamanızda alakalı bir işlem tamamladığında kısayollar aktarılır. Aşağıdaki örnek kod, kullanıcıların yemek siparişi uygulamasında her sipariş verdiğinde bir kısayol oluşturur:

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

Önceki örnek kodda bulunan ShortcutInfoCompat.Builder yönteminde başvurulan id, elde edilen kısayol nesnesinin shortcutId özelliğini tanımlar. Bu id benzersiz bir dize değişmez değeri olmalıdır. Ayrıntılar için Android Kısayolları dokümanlarına bakın.

Yukarıdaki örnekte addCapabilityBinding yöntemi, dinamik kısayolu shortcuts.xml içinde tanımlanan aynı android:name öğesinin bir capability öğesine bağlar. Bu yöntem, kısayolu semantik bir yerleşik intent (BII) parametresiyle ilişkilendirmenize olanak tanır.

Dinamik kısayollar bazen belirli bir BII parametre ilişkilendirmesi olmadan aktarılır. Asistan, kullanıcı tarafından çağrıldığında işlemi gerçekleştirmek için kısayolda tanımlanan intent öğesini tetikler. Aşağıdaki örnekte parametre ilişkilendirmesi olmayan dinamik bir kısayol gösterilmektedir:

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, uygulamanızdan dinamik kısayolu başarıyla aldığında kısayol, Asistan Android uygulamasında Sesli Kısayol önerisi olarak görünmeye uygun hale gelir. Asistan uygulaması, uygulamanız tarafından aktarılan en son kısayolları önerir.

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

  1. Google Asistan Eklentisi ile aynı kurulum gereksinimlerini uygulayarak Uygulama İşlemlerinizin önizlemesini oluşturun ve test cihazınızı veya emülatörünüzü test işlemlerine hazırlayı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 her not oluşturulduğunda kısayol aktarırsanız yeni bir not oluşturabilirsiniz.
  3. Cihazınızdaki Asistan Ayarları uygulamasında Kısayollar'ı açın. Dinamik kısayolunuz uygulamanızın listesinde görünür.