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:
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
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ızShortcutManagerCompat
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'ınShortcutManagerCompat
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:
- 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.
- 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.
- Cihazınızdaki Asistan Ayarları uygulamasında Kısayollar'ı açın. Dinamik kısayolunuz uygulamanızın listesinde görünür.