Setelah Anda mengidentifikasi fungsi aplikasi dan intent bawaan (BII) bawaan yang sesuai
untuk diimplementasikan, deklarasikan BII yang didukung fungsi Anda dengan menentukan
elemen capability
dalam file resource shortcuts.xml
. Mendeklarasikan BII
sebagai capability
akan mendaftarkan dukungan untuk intent semantik tersebut di aplikasi Anda, dan
memungkinkan fulfillment kueri suara untuk intent tersebut menggunakan Asisten Google.
Asisten menggunakan natural language processing untuk mengekstrak parameter dari kueri
pengguna. Referensi intent bawaan mencantumkan kolom yang
dapat diekstrak oleh setiap BII dari kueri pengguna yang terkait. Misalnya, jika pengguna
memanggil kemampuan [actions.intent.GET_FOOD_OBSERVATION
][] di aplikasi Anda dengan
mengucapkan, "Ok Google, Tanyakan kepada ExampleApp apa yang saya makan untuk Makan Siang Jumat lalu", Asisten
mengekstrak parameter BII berikut dari permintaan pengguna:
foodObservation.forMeal
= "https://schema.googleapis.com/MealTypeLunch"foodObservation.startTime
= "2024-09-06T00:00:00"foodObservation.endTime
= "2024-09-06T23:59:59"
Asisten meneruskan parameter BII ke intent
fulfillment yang ditentukan dalam
capability
. Satu atau beberapa elemen intent
dapat ditentukan dalam kemampuan untuk
mengakomodasi berbagai cara yang mungkin digunakan pengguna untuk memanggil BII. Misalnya, Anda
dapat menentukan intent
fulfillment yang memerlukan kedua parameter BII dalam
contoh di atas. Anda kemudian dapat menentukan intent kedua yang memerlukan satu parameter
BII, foodObservation.forMeal
, yang melaporkan semua makanan pada hari tertentu, seperti "Ok Google, Tanyakan kepada ExampleApp apa yang saya makan untuk Makan Siang".
Ringkasan
Anda mengonfigurasi Action Aplikasi menggunakan file shortcuts.xml
yang ditempatkan di direktori res/xml
project aplikasi, lalu membuat referensi ke shortcuts.xml
dalam manifes aplikasi Anda. Tambahkan referensi ke shortcuts.xml
di manifes aplikasi Anda
dengan mengikuti langkah-langkah ini:
Dalam file manifes aplikasi Anda (
AndroidManifest.xml
), cari aktivitas yang filter intent-nya ditetapkan ke tindakanandroid.intent.action.MAIN
dan kategoriandroid.intent.category.LAUNCHER
.Tambahkan referensi ke
shortcuts.xml
diAndroidManifest.xml
menggunakan tag<meta-data>
diActivity
yang memiliki filter intent untukMAIN
danLAUNCHER
, sebagai berikut:<meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts" />
Contoh di atas mendeklarasikan resource XML untuk file xml/shortcuts.xml
dalam
APK. Untuk detail selengkapnya tentang cara mengonfigurasi pintasan, lihat
Membuat pintasan statis di dokumentasi developer Android.
Library Jetpack androidx.core:core:1.6.0
(atau yang lebih baru) diperlukan dalam project Android Anda untuk menghindari error kompilasi
saat menentukan kemampuan Action Aplikasi di shortcuts.xml
. Untuk mengetahui detailnya, lihat
Mulai menggunakan Android Jetpack.
Pintasan statis
Saat menentukan capability
, Anda dapat mendeklarasikan elemen shortcut
statis di
shortcuts.xml
untuk memperluas fungsi kemampuan. Pintasan statis
diserap oleh Asisten saat Anda mengupload rilis ke Konsol Google Play.
Karena pintasan statis hanya dapat dibuat dan diupdate dengan membuat rilis baru,
pintasan tersebut paling berguna untuk menyoroti aktivitas dan konten umum dalam aplikasi Anda.
Anda dapat mengaktifkan fungsi Action Aplikasi berikut dengan pintasan statis:
Pintasan kemampuan. Buat pintasan yang meluncurkan instance
capability
Anda yang berisi nilai parameterintent
yang telah ditetapkan. Misalnya, Anda dapat mendeklarasikan pintasan aplikasi "Mulai lari" yang memanggil kemampuan BIISTART_EXERCISE
di aplikasi kebugaran Anda.Pintasan ini berisi atribut
intent
,shortLabel
, danlongLabel
, sehingga memenuhi syarat untuk disarankan dan terpenuhi sebagai chip di platform proaktif, seperti Asisten atau saat menekan lama ikon aplikasi di peluncur Android. Pintasan tindakan juga dapat berfungsi sebagai pintasan entitas, yang dijelaskan di bawah, dengan mengaitkannya kecapability
menggunakan tag<capability-binding>
.Pintasan entitas. Pintasan entity memberikan daftar parameter value yang didukung untuk fulfillment kueri suara
capability
. Misalnya, pintasan entity dengan daftar jenis olahraga ("gerak jalan", "berlari", dll.) yang terikat ke parameter BIIexercise.name
dari kemampuanSTART_EXERCISE
. Jika ucapan pengguna cocok dengan entity, IDshortcutId
diteruskan ke intent, bukan nilai kueri pengguna yang mentah.Pintasan
Entity
tidak menentukan atributintent
,shortLabel
, ataulongLabel
, dan oleh karena itu tidak disarankan pada platform proaktif. Untuk mengetahui detailnya, lihat Inventaris inline untuk Action Aplikasi.
Skema Kemampuan
Tabel berikut menjelaskan skema Action Aplikasi untuk elemen capability
di shortcuts.xml
. Saat menyertakan tag, semua atributnya wajib
kecuali ditandai "opsional".
Tag shortcuts.xml | Ada dalam | Atribut |
---|---|---|
<capability> |
<shortcuts> |
|
<intent> |
<capability> |
|
<url-template> |
<intent> |
|
<extra> |
<intent> |
Hanya berlaku untuk pemanggilan aplikasi latar depan |
<parameter> |
<intent> |
|
<shortcut-fulfillment> |
<capability> |
Hanya berlaku untuk inventaris inline |
<parameter> |
<shortcut-fulfillment> |
android:name |
<slice> |
<capability> |
Hanya berlaku untuk Android Slice |
Deskripsi skema kemampuan
Bagian ini menjelaskan elemen skema capability
.
<capability>
capability
yang menentukan intent Action Aplikasi yang didukung aplikasi Anda. Setiap
elemen <capability>
dalam file shortcuts.xml
Anda harus menyediakan setidaknya satu
<intent>
untuk menangani fulfillment tindakan.
Atribut:
android:name
: ID Tindakan intent bawaan (misalnya, [actions.intent.GET_FOOD_OBSERVATION
][]). Untuk daftar intent bawaan yang didukung, lihat referensi intent bawaan.app:queryPatterns
: Resource array string dari kueri yang diharapkan dari pengguna untuk intent ini. Atribut ini hanya berlaku untuk intent kustom, karena BII sudah menyertakan model cara umum yang digunakan pengguna untuk mengekspresikan tugas yang berusaha mereka lakukan, atau informasi yang mereka cari.
<intent>
Elemen intent
Android yang menentukan cara kueri pengguna harus diisi
menggunakan fungsi dalam aplikasi. Developer dapat menyediakan beberapa tag <intent>
dalam capability
. Asisten berupaya memenuhi kueri pengguna menggunakan
<intent>
pertama di capability
yang menyediakan semua parameter
yang diperlukan.
Atribut:
android:action
: jenisAction
intent. Default-nya adalahACTION_VIEW
.android:targetClass
: Class Aktivitas Target, misalnya:"com.example.exercise.ExerciseActivity"
android:targetPackage
: Paket yang berisi class Aktivitas target, misalnya:"com.example.exercise
android:data
: Kolom ini ditimpa oleh<url-template>
jika tag tersebut dideklarasikan diintent
.
<url-template>
Template untuk membuat URI deep link yang akan dibuka di perangkat. Template dapat diluaskan dengan parameter intent bawaan jika semua parameter yang diperlukan untuk template tersedia. Untuk contoh template URL HTTP, lihat artikel Wikipedia tentang template URL. Format template mengikuti spesifikasi template URI RFC6570.
Berikut adalah beberapa contoh nilai template URL:
Template | Nilai | Nilai yang diperluas |
---|---|---|
https://example.com/test{?foo,bar} |
"foo": "123"
|
https://example.com/test?foo=123&bar=456 |
https://example.com/test?utm_campaign=appactions{&foo,bar} |
"foo": "123"
|
https://example.com/test?utm_campaign=appactions&foo=123&bar=456 |
https://example.com/test?utm_campaign=appactions{#foo} |
"foo": "123" |
https://example.com/test?utm_campaign=appactions#foo=123 |
myapp://example/{foo} |
"foo": "123" |
myapp://example/123 |
Untuk informasi selengkapnya tentang cara mengonfigurasi template URL, lihat Template URL dalam fulfillment.
<extra>
Menentukan data tambahan untuk intent
. Untuk Action Aplikasi, kolom ini hanya digunakan untuk
mengaktifkan [pemanggilan aplikasi latar depan][] untuk capability
.
<parameter>
Memetakan parameter BII ke parameter value intent. Untuk informasi selengkapnya, lihat Data dan pencocokan parameter.
Atribut:
android:name
: Nama parameter BII yang akan dikaitkan dengan parameterintent
ini. Nama harus berupa kolom tingkat ikon daun nest dari parameter BII (misalnya,foodObservation.aboutFood.name
).android:key
: Kunci yang ditentukan developer untuk parameter value BII. Misalnya, Anda dapat menentukancontact_name
untuk parameter BIImessage.recipient.name
.android:mimeType
: mimeType parameter, sepertitext/*
. Kolom ini hanya diperlukan untuk parameter intent kustom.android:required
: Mendeklarasikan apakah kueri pengguna perlu menyertakan parameter ini agar intent ini digunakan untuk fulfillment. Jika parameter tidak tersedia, Asisten akan mencoba memenuhi kueri pengguna menggunakanintent
berikutnya yang ditentukan untukcapability
.
<shortcut-fulfillment>
Menentukan bahwa intent
yang ditentukan dalam pintasan inventaris inline untuk
parameter yang ditentukan akan digunakan untuk fulfillment.
Untuk mengetahui detailnya, lihat Fulfillment menggunakan intent pintasan.
<parameter> (untuk <shortcut-fulfillment>
)
Atribut opsional yang memetakan satu parameter BII ke fulfillment pintasan inventaris inline. Untuk mengetahui detailnya, lihat Fulfillment menggunakan intent pintasan.
Atribut:
android:name
: Nama parameter BII yang akan dikaitkan dengan fulfillment pintasan inventaris inline. Nama harus berupa kolom tingkat ikon daun nest dari parameter BII (misalnya,menuItem.name
).
<slice>
Memungkinkan Asisten menyematkan hasil kueri yang cocok dengan capability
ini sebagai
Android Slice. Untuk mengetahui detailnya, lihat
Mengintegrasikan Action Aplikasi dengan Android Slice.
Skema pintasan
Tabel berikut menjelaskan atribut elemen shortcut
yang digunakan untuk mengaktifkan
fungsionalitas Action Aplikasi. Saat menyertakan tag, semua atributnya wajib
ada kecuali jika ditandai "opsional".
Tag shortcuts.xml | Ada dalam | Atribut |
---|---|---|
<shortcut> |
<shortcuts> |
|
<intent> |
<shortcut> |
|
<capability-binding> |
|
|
<parameter-binding> |
<capability-binding> |
|
<extra> |
<shortcut> |
Hanya berlaku untuk Pencocokan parameter enum. |
Deskripsi skema pintasan
Bagian ini menjelaskan elemen skema shortcut
.
<shortcut>
<shortcut>
Android yang ditentukan di shortcuts.xml
dengan atribut tertentu
yang relevan untuk Action Aplikasi. Nilai string untuk kolom shortcutShortLabel
dan shortcutLongLabel
direferensikan melalui
resource string APK.
Atribut:
android:shortcutId
: ID untuk pintasan ini.android:shortcutShortLabel
: Resource string yang menampilkan frasa pintasan singkat. Misalnya,"@string/callDavidShort"
yang menampilkan nilai "Telepon David".android:shortcutLongLabel
: Resource string yang menampilkan frasa pintasan yang panjang. Misalnya,"@string/callDavidLong"
yang menampilkan nilai "Lakukan panggilan audio ke David".
<intent>
Intent Android yang terkait dengan pintasan ini. intent
ini dijalankan saat
pengguna meluncurkan pintasan ini menggunakan suara atau sentuhan.
Atribut intent shortcut
identik dengan atribut
capability
intent
.
<capability-binding>
Mengaitkan shortcut
ke capability
Action Aplikasi. Menambahkan elemen ini ke
shortcut
memungkinkannya untuk fulfillment suara menggunakan Assistant
.
Atribut:
android:key
: Atributandroid:name
daricapability
yang terikat denganshortcut
ini. Misalnya,actions.intent.START_EXERCISE
.
<parameter-binding>
Atribut opsional yang mengaitkan shortcut
ke satu parameter Action Aplikasi
capability
. Jika parameter-binding
ditentukan untuk shortcut
, pintasan
dapat digunakan untuk memberikan entity inventaris inline ke parameter BII.
Untuk mengetahui detail, lihat Inventaris inline untuk Action Aplikasi.
Atribut:
android:key
: Nama parameter BIIcapability
yang akan dikaitkan dengan pintasan ini. Misalnya,exercise.name
.android:value
: nilaientity
. Ini dapat berupa satuentity
atau daftar resource.
<extra>
Data paket extra
untuk pintasan. sameAs adalah satu-satunya data
yang relevan dengan elemen shortcut
Action Aplikasi. URL sameAs merujuk pada
halaman web referensi yang secara jelas mengidentifikasi entitas. Digunakan untuk menentukan
nilai enum jika dan hanya jika jenis parameter intent adalah subjenis
schema.org/Enumeration. Kolom ini wajib ada untuk kolom parameter
yang jenisnya adalah subjenis schema.org/Enumeration
(misalnya:
MealTypeBreakfast
).
Atribut:
android:key
: Nilai yang didukung untuk Action Aplikasi adalah:sameAs
android:value
: Nilai URLsameAs
Untuk detail selengkapnya, lihat Mencocokkan parameter value yang di-enumerasi.
Opsi fulfillment intent
Anda menentukan elemen intent
dalam <capability>
untuk mendeklarasikan cara Asisten
merespons, atau memenuhi, perintah suara pengguna yang cocok dengan kemampuan tersebut. Ada
beberapa cara untuk mengonfigurasi cara intent
meluncurkan tujuan fulfillment
di aplikasi Anda, bergantung pada cara navigasi aplikasi Anda disusun.
Opsi fulfillment berikut tersedia:
Intent eksplisit: Meluncurkan komponen aplikasi tertentu dengan menentukan atribut
targetClass
dantargetPackage
untukintent
. Ini adalah metode fulfillment Action Aplikasi yang direkomendasikan.Deep link: Meluncurkan tujuan aplikasi menggunakan deep link Android dengan menentukan tag
<url-template>
dalam elemenintent
. Metode ini berguna jika navigasi aplikasi Anda sudah mengandalkan deep link.Data intent: Anda dapat menyediakan URI fulfillment di atribut
android:data
intent
. Kolom ini ditimpa oleh data<url-template>
jika tag tersebut juga ditentukan dalamintent
.
Data dan pencocokan parameter
Secara default, Asisten mengirimkan parameter BII yang diekstrak dari kueri pengguna ke
aplikasi Anda sebagai data extra
dari intent
Android yang ditentukan dalam capability
.
Atau, Anda dapat mendeklarasikan tag <url-template>
dalam
capability
yang berisi placeholder untuk parameter dinamis. Template ini
memetakan ke salah satu aktivitas Android Anda menggunakan URL Link Aplikasi,
skema kustom, atau URL berbasis Intent.
Menggunakan Tambahan intent
Contoh berikut menunjukkan intent eksplisit yang ditentukan untuk fulfillment
capability
:
<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>
Dengan contoh di atas, untuk kueri pengguna seperti, "Ok Google, mulai sesi lari saya",
aplikasi menerima intent
yang memanggil komponen:
targetPackage
, targetClass
. Komponen ini menerima Tambahan dengan
key = "exercise"
, value = "Running"
.
Menggunakan template URL untuk deep link Android
Jika aplikasi Anda sudah dapat menangani URL yang tertaut ke aplikasi, dengan parameter dinamis,
Anda dapat menentukan <url-template>
dalam intent
untuk menghasilkan
deep link Android untuk fulfillment. Contoh berikut menentukan <url-template>
:
<capability android:name="actions.intent.START_EXERCISE">
<intent>
<url-template android:value="myapp://start{?exercise}" />
<parameter android:name="exercise.name" android:key="exercise" />
</intent>
</capability>
Berdasarkan contoh di atas, untuk kueri pengguna seperti, “Ok Google, mulai sesi lari saya", aplikasi akan menerima URL yang dibuat: "myapp://start?exercise=Running".
Untuk memetakan parameter BII ke posisi di URL, Anda harus menggunakan
atribut android:name
pada tag <parameter>
. Atribut ini
sesuai dengan nilai android:key
di template URL yang ingin Anda
ganti dengan informasi dari pengguna. Nilai android:key
harus ada
di <url-template>
dan diapit oleh tanda kurung kurawal ({}
).
Mencocokkan parameter value yang dienumerasi
Beberapa parameter BII memberikan nilai terenumerasi untuk intent fulfillment Anda, misalnya,
nilai teks yang didukung dari BII RECORD_FOOD_OBSERVATION
. Untuk
parameter ini, Asisten mencocokkan kueri pengguna ("Sarapan") dengan
entity yang nilai sameAs
-nya cocok dengan URL skema enum
(https://schema.googleapis.com/MealTypeBreakfast
). Guna mengaitkan nilai
enum untuk entity
yang didukung, Anda mendeklarasikan pengaitan sameAs
dalam
shortcut
. Contoh berikut menunjukkan objek atribusi sameAs
untuk
pintasan entitas inline:
<shortcut android:shortcutId="meal_breakfast" >
<capability-binding android:key="actions.intent.RECORD_FOOD_OBSERVATION">
<parameter-binding android:key="foodObservation.forMeal" />
</capability-binding>
<extra
android:key="sameAs"
android:value="http://schema.googleapis.com/MealTypeBreakfast" />
</shortcut>
<capability android:name="actions.intent.RECORD_FOOD_OBSERVATION">
<intent targetPackage="com.example.app" targetClass="com.example.app.Class">
<parameter android:name="foodObservation.forMeal" android:key="for_meal" />
</intent>
</capability>
Pada contoh di atas, jika kemampuan RECORD_FOOD_OBSERVATION
memicu
kecocokan untuk jenis makanan "sarapan", Tambahan berikut akan dikirim dengan
intent
fulfillment:
key = "for_meal"
value = "meal_breakfast"
Fitur
Fitur Action Aplikasi berikut tersedia di shortcuts.xml
.
Inventaris inline untuk Action Aplikasi
Untuk beberapa parameter BII, pintasan dapat digunakan untuk memandu
ekstraksi entity ke serangkaian entity yang didukung dan ditentukan dalam shortcuts.xml
, yang dikenal sebagai
inventaris inline. Untuk mengetahui detailnya, lihat Inventaris inline.
Intent kustom
Intent kustom dapat dideklarasikan di shortcuts.xml
untuk mengaktifkan fitur suara di
aplikasi Anda yang tidak cocok dengan BII yang tersedia. Meskipun mirip dengan
fungsi BII, intent kustom memerlukan dua atribut
tambahan dalam shortcuts.xml
:
app:queryPatterns
: Resource array yang mendeklarasikan berbagai pola kueri untuk intent kustom.android:mimeType
: Jenis parameter intent kustom. Kolom ini tidak wajib untuk BII, tempat jenis parameter diketahui. Untuk parameter intent kustom, jenis semantik yang didukung harus dideklarasikan.
Untuk detail selengkapnya, lihat Intent kustom.