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