Satır içi envanter

Android uygulamanız için Uygulama İşlemleri'ni uyguladığınızda, bir temanın varyasyonları olan istekleri ele almak zorunda kalıyorlar. Örneğin, şöyle deyin: fitness uygulaması, yüksek performans gösteren START_EXERCISE yerleşik intent'i (BII) Kullanıcılar, Asistan'a şöyle sorular sorarak çok çeşitli antrenmanlar başlatır: "Ok Google, Örnek Uygulama'da koşu başlat."

Bu amacın yerine getirilmesi için her bir istek eşleştirme mantığının ele alınması gerekir. "joying", "jogging" gibi varyasyonlar da dahil "sprint", ırk olabilir. Desteklenen antrenmanlar arttıkça bu mantık da kısa süre içinde kullanışsız hale gelir.

Desteklenen BBI'lerde (ör. START_EXERCISE) bu karmaşık eşleşmeden kaçınabilirsiniz mantığına ve bunu yapmaya çalışın. Satır içi envanter, her bir ürünün shortcuts.xml içinde tanımlanmış, özellikleri ve içeriği temsil eden Android kısayolları dokunun.

Her kısayol bir öğe tanımlayıcısı ve eş anlamlılar listesi içerir Bu da kullanıcıların öğeye nasıl atıfta bulunabileceğiyle ilgili varyasyonları temsil eder. Çağrı sırasında, BII, kullanıcı tarafından sağlanan BII parametresini eş anlamlılar listesiyle karşılaştırır. Bir eşleşme bulunursa BII parametresi, eşleşen kısayolun öğesine güncellenir. kullanır.

Satır içi envanter, Google Asistan'ın BII parametresini basitleştirmesini sağlar değerleri için geçerlidir.

Satır içi envanterler, BII parametreleri için arama tabloları gibi çalışır. Kullanıcıların uygulamanızdaki özelliklere veya içeriklere çeşitli şekillerde atıfta bulunmasını ifade etme bunları kullanabilirsiniz. Uygulamanızın istek eşleştirmesini basitleştirirler sipariş karşılama işlemlerinizin BII'den öğe tanımlayıcılarını tahmin etmesine izin vererek mantıksal parametreleridir.

Satır içi envanter kullanıcısı akış diyagramı
Şekil 1. Bir START_EXERCISE işlevinin akış diyagramı desteklenenler için kullanıcı tarafından sağlanan antrenman adlarını yorumlamak üzere satır içi envanter belirli egzersiz türleri bulunuyor.
'nı inceleyin.

Sınırlamalar ve alternatifler

Satır içi envanter kısayollarında aşağıdaki sınırlamalar bulunur:

  • Kısayol sınırı: En fazla 1.000 satır içi envanter kısayolu olabilir tanımlanabilir.
  • Eş anlamlı sınırı: Her satır içi envanter kısayolu en fazla 20 anlamına gelir.
  • Statik tanım: Satır içi envanter kısayolları statik olarak bildirilir shortcuts.xml içinde ve yalnızca yeni bir sürümünü kullanabilirsiniz.

Statik yapılandırma gereksinimi göz önünde bulundurulduğunda en iyi seçenek satır içi envanterdir. nadiren değişen, kişiselleştirilmemiş uygulama bilgilerini Menü öğeleri, otobüs rotaları veya içecek boyutları gibi Asistan özellikleri. Diğer aşağıdaki alternatifleri göz önünde bulundurun:

  • Web envanteri: Asistan'ın aşağıdaki durumlarda herkese açık web içeriğini sorgulamasına olanak tanır: Kullanıcı sorgularını desteklenen uygulama içeriği tanımlayıcılarıyla eşleştirme. Web envanteri bir çağrı sırasında gerçek zamanlı olarak gerçekleşir. Böylece, ürün katalogları, sosyal medya gönderileri ve sık güncellenen diğer içerikler Asistan'a.

  • Dinamik kısayollar: Kişiselleştirilmiş uygulama içeriği envanterini genişletin Asistan'a. Dinamik kısayollar, kullanıcıların ortak öğeleri sipariş etme uygulamalarından en sevdikleri içeceği tekrar sipariş etme veya kullanarak not alma uygulamasında alışveriş listesi oluşturuyorum.

Satır içi envanter oluşturma

Satır içi envanter, Asistan'a kullanışlı bir yöntem sunarak geliştirmeyi basitleştirir: Kullanıcıların, uygulamanızın içeriği ve özellikleri için istekte bulunduğu farklı yolları tercüme edin tahmin edilebilir tanımlayıcılarla eşleştirilmesi gerekir. Örneğin, Örneğin, uygulamanızda kullanıcıların kullanmaya başlayabilecekleri farklı antrenmanlar sunduğunu varsayalım emin olabilirsiniz. Uygulamanız da kullanıcıların aynı egzersiz türü:

  • Ok Google, Örnek Uygulama'da koşu başlat.
  • Ok Google, Örnek Uygulama'da koşu başlat.

Satır içi envanter kısayolunuzda shortcutId özelliğini "CARDIO_RUN" olarak ayarlarsınız. uygulamanız tarafından beklenen egzersiz tanımlayıcısıdır. Ardından, ve "jogging" shortcutId ile ilişkili eş anlamlılar olarak gösterilir. Daha sonra, bir kullanıcı önceki sorgularla uygulama işleminizi görürseniz Asistan, tanımlayıcıyı kullanır Sipariş karşılama amacı oluştururken BII parametresi için "CARDIO_RUN".

Örnek bir app/res/shortcuts.xml dosyasından alınan aşağıdaki snippet'in uygulanması bu durumda:

<capability android:name="actions.intent.START_EXERCISE">
  <intent
    android:targetPackage="com.example.myapp"
    android:targetClass="com.example.myapp.ExerciseActivity">
    <parameter android:name="exercise.name" android:key="exercise" />
  </intent>
</capability>

<shortcut android:shortcutId="CARDIO_RUN">
  <capability-binding android:key="actions.intent.START_EXERCISE">
    <parameter-binding
      android:key="exercise.name"
      android:value="@array/run_names" />
    </capability-binding>
</shortcut>

Önceki örnekte, shortcut satır içi envanter bir <capability-binding> öğesinde <parameter-binding> etiketi, bu belgede tanımlanan exercise.name BII parametresine <capability>.

@array/run_names dize dizisi kaynağı, Asistan'ın tanıdığı ve eşlendiği res/values/arrays.xml "CARDIO_RUN" öğe kimliği:

<!-- Synonym values for "CARDIO_RUN" inline inventory -->
<resources>
  <string-array name="run_names">
    <item>Run</item>
    <item>Jog</item>
    <item>Sprint</item>
  </string-array>
</resources>

Bu özellik için bir <url-template> sağlandığında shortcutId Oluşturulan URL'ye, ilgili URL'nin bulunduğu URL'de eşleşen bir değer yer tutucusu yer alır. Bir örnekten alınan aşağıdaki kod app/res/shortcuts.xml dosyası şu senaryoyu uyguluyor:

<capability android:name="actions.intent.START_EXERCISE">
  <intent>
    <url-template android:value="myapp://workout{?exercise}" />
    <parameter android:name="exercise.name" android:key="exercise" />
  </intent>
</capability>

<shortcut android:shortcutId="CARDIO_RUN">
  <capability-binding android:key="actions.intent.START_EXERCISE">
    <parameter-binding
      android:key="exercise.name"
      android:value="@array/run_names" />
  </capability-binding>
</shortcut>

Önceki örnekte, Asistan sipariş karşılama derin bağlantısını oluşturur myapp://workout?exercise=CARDIO_RUN

Kısayol amaçları kullanarak sipariş karşılama

Varsayılan olarak, kısayol eşleşen bir satır içi envanterin shortcutId değerini sağlar belirtildiği gibi, kısayolun bağlı olduğu capability öğesinin intent öğesine değer kısayolun <capability-binding> etiketine dokunun. Şunları yapabilirsiniz: alternatif olarak, kısayolun kendisinde tanımlanan bir intent öğesinin sipariş karşılamayı capability öğesine <shortcut-fulfillment> etiketi ekleyerek yapabilirsiniz.

Bir örnek app/res/shortcuts.xml dosyasından alınan aşağıdaki kod, kısayol yerine getirme:

<capability android:name="actions.intent.START_EXERCISE">
  <shortcut-fulfillment>
    <parameter android:name="exercise.name"/>
  </shortcut-fulfillment>
</capability>

<shortcut android:shortcutId="CARDIO_RUN">
  <capability-binding android:key="actions.intent.START_EXERCISE">
    <parameter-binding
      android:key="exercise.name"
      android:value="@array/run_names" />
  </capability-binding>
  <intent android:targetPackage="com.example.myapp"
    android:targetClass="com.example.myapp.ExerciseActivity">
    <parameter android:name="exercise.name" android:key="exercise" />
  </intent>
</shortcut>

Yukarıdaki örnekte, kullanıcı sorgusu bir satır içi envanter değeriyle eşleşirse exercise.name parametresi için <shortcut-fulfillment> etiketi bağlı kısayolun intent öğesinin istek karşılama için kullanıldığını belirtir.

Açık uygulama özelliği BII için satır içi envanter

Satır içi envanter, genelde BII'ler için isteğe bağlı bir özelliktir. desteklenmemeli, OPEN_APP_FEATURE gibi belirli BBI'lar için gereklidir. Bu Yaygın olarak kullanılan BII, kullanıcıların belirli uygulama özelliklerine derin bağlantı kurmasına olanak tanır ve Asistan'ı kullanarak. Açık uygulama özelliği BII'si, Kullanıcı tarafından istenen özelliğin mevcut olduğunu doğrulayın. en iyi şekilde yararlanabilirsiniz.

Örnek bir app/res/shortcuts.xml dosyasından alınan aşağıdaki kod, bunu uygular Uygulamanın sipariş durumu özelliğini temsil eden tek bir kısayola sahip BII:

<capability android:name="actions.intent.OPEN_APP_FEATURE">
  <intent
    android:targetPackage="com.example.myapp"
    android:targetClass="com.example.myapp.MyClass">
    <parameter
       android:name="feature"
       android:key="featureParam" />
  </intent>
  <!-- Required fallback fulfillment to handle when parameters are missing from user query. -->
  <intent
    android:targetPackage="com.example.myapp"
    android:targetClass="com.example.myapp.MyClass">
    <parameter
       android:name="HOME_SCREEN"
       android:key="featureParam" />
  </intent>
</capability>

<!-- Inline inventory for OPEN_APP_FEATURE. -->

<shortcut android:shortcutId="ORDER_STATUS">
  <capability-binding android:key="actions.intent.OPEN_APP_FEATURE">
    <parameter-binding
      android:key="feature"
      android:value="@array/order_status_names" />
    </capability-binding>
</shortcut>

res/values/arrays.xml içindeki dize dizisi kaynakları, @array/order_status_names, bu özelliğin eş anlamlıları:

<resources>
  <string-array name="order_status_names">
    <item>Order status</item>
    <item>Orders</item>
    <item>Order history</item>
  </string-array>
</resources>

Asistan, önceki özellikler sayesinde birçok şeyi yerine getirebilir aynı özellik için farklı ifadeler:

  • "Ok Google, örnek uygulamada siparişimin durumunu göster."
  • "Ok Google, siparişlerimi Örnek Uygulamada göster."
  • "Ok Google, Örnek Uygulamada sipariş geçmişimi göster."

Satır içi envanteri test etme

Asistan'ın sağladığı BII parametre değerlerini inceleyerek envanterinizi test edin. uygulamanızın performansını artırın. Satır içi envantere bağlı bir BII'nin kullanıcı tarafından sağlanan değeri yerine parametresini, eşleşen bir satır içi envanter kısayolunun shortcutId parametresiyle değiştirebilirsiniz.

Örneğin, Örneğin, START_EXERCISE BII özelliği şu işlemleri yapmak için satır içi envanter kullanabilir: kullanıcı tarafından sağlanan BII parametresini çevir "run" ilgili alıştırmada Kimlik, "CARDIO_RUN".

Google Asistan Eklentisi, satır içi envanter Uygulamanızı önizlemenize olanak tanır. Test cihazında Asistan'daki işlemler. Eklentiyi kullanarak envanterinizi test etmek için şu adımları uygulayarak:

  1. BII yeteneğinizin envantere bağlı parametrelerini yapılandırın. satır içi envanterinizle ilişkili eş anlamlı değerleri.
  2. BII'yi eklentiden tetikleyerek test cihazınızda çağırın.
  3. Asistan'ın uygulamanıza sağladığı parametre değerlerini inceleyin. uygulama işlemi sırasında yürütülmesi.