Pintasan memberikan jenis konten tertentu kepada pengguna Anda dengan membantu mereka mengakses bagian aplikasi Anda dengan cepat.
Cara Anda menyampaikan konten dengan pintasan bergantung pada kasus penggunaan dan apakah konteks pintasan didorong oleh aplikasi atau pengguna. Meskipun konteks pintasan statis tidak berubah dan konteks pintasan dinamis terus berubah, aplikasi Anda mendorong konteks dalam kedua kasus tersebut. Dalam kasus saat pengguna memilih cara aplikasi Anda menayangkan konten kepada mereka, seperti dengan pintasan yang disematkan, konteks ditentukan oleh pengguna. Skenario berikut menjelaskan beberapa kasus penggunaan untuk setiap jenis pintasan:
- Pintasan statis paling cocok untuk aplikasi yang menautkan ke konten menggunakan struktur yang konsisten selama masa interaksi pengguna dengan aplikasi. Karena sebagian besar peluncur hanya menampilkan empat pintasan sekaligus, pintasan statis berguna untuk melakukan tugas rutin secara konsisten, seperti jika pengguna ingin melihat kalender atau email mereka dengan cara tertentu.
- Pintasan dinamis digunakan untuk tindakan dalam aplikasi yang sensitif terhadap konteks. Pintasan sensitif konteks disesuaikan dengan tindakan yang dilakukan pengguna di aplikasi. Misalnya, jika Anda membuat game yang memungkinkan pengguna memulai dari level saat ini saat diluncurkan, Anda harus sering memperbarui pintasan. Dengan pintasan dinamis, Anda dapat memperbarui pintasan setiap kali pengguna menyelesaikan level.
- Pintasan yang disematkan digunakan untuk tindakan tertentu yang didorong pengguna. Misalnya, pengguna mungkin ingin menyematkan situs tertentu ke peluncur. Hal ini bermanfaat karena memungkinkan pengguna melakukan tindakan kustom—seperti membuka situs dalam satu langkah, lebih cepat daripada menggunakan instance browser default.
Membuat pintasan statis
Pintasan statis memberikan link ke tindakan umum dalam aplikasi Anda, dan tindakan ini harus tetap konsisten selama masa aktif versi aplikasi Anda saat ini. Opsi yang baik untuk pintasan statis mencakup melihat pesan terkirim, menyetel alarm, dan menampilkan aktivitas latihan pengguna untuk hari itu.
Untuk membuat pintasan statis, lakukan hal berikut:
- Dalam file
AndroidManifest.xmlaplikasi Anda, temukan aktivitas yang filter intent-nya ditetapkan ke tindakanandroid.intent.action.MAINdan kategoriandroid.intent.category.LAUNCHER. Tambahkan elemen
<meta-data>ke aktivitas ini yang mereferensikan file resource tempat pintasan aplikasi ditentukan:<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.myapplication"> <application ... > <activity android:name="Main"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts" /> </activity> </application> </manifest>Buat file resource baru bernama
res/xml/shortcuts.xml.Di file resource baru, tambahkan elemen root
<shortcuts>yang berisi daftar elemen<shortcut>. Di setiap elemen<shortcut>, sertakan informasi tentang pintasan statis, termasuk ikon, label deskripsi, dan intent yang diluncurkannya dalam aplikasi:<shortcuts xmlns:android="http://schemas.android.com/apk/res/android"> <shortcut android:shortcutId="compose" android:enabled="true" android:icon="@drawable/compose_icon" android:shortcutShortLabel="@string/compose_shortcut_short_label1" android:shortcutLongLabel="@string/compose_shortcut_long_label1" android:shortcutDisabledMessage="@string/compose_disabled_message1"> <intent android:action="android.intent.action.VIEW" android:targetPackage="com.example.myapplication" android:targetClass="com.example.myapplication.Main" /> <!-- If your shortcut is associated with multiple intents, include them here. The last intent in the list determines what the user sees when they launch this shortcut. --> <categories android:name="android.shortcut.conversation" /> <capability-binding android:key="actions.intent.CREATE_MESSAGE" /> </shortcut> <!-- Specify more shortcuts here. --> </shortcuts>
Menyesuaikan nilai atribut
Daftar berikut mencakup deskripsi untuk berbagai atribut dalam pintasan statis. Berikan nilai untuk android:shortcutId dan
android:shortcutShortLabel. Semua nilai lainnya bersifat opsional.
android:shortcutIdLiteral string yang merepresentasikan pintasan saat objek
ShortcutManagermelakukan operasi di dalamnya.android:shortcutShortLabelFrasa ringkas yang menjelaskan tujuan pintasan. Jika memungkinkan, batasi deskripsi singkat ini hingga 10 karakter.
Untuk informasi selengkapnya, lihat
setShortLabel().android:shortcutLongLabelFrasa panjang yang menjelaskan tujuan pintasan. Jika ada cukup ruang, peluncur akan menampilkan nilai ini, bukan
android:shortcutShortLabel. Jika memungkinkan, batasi deskripsi panjang ini hingga 25 karakter.Untuk informasi selengkapnya, lihat
setLongLabel().android:shortcutDisabledMessagePesan yang muncul di peluncur yang didukung saat pengguna mencoba meluncurkan pintasan yang dinonaktifkan. Pesan harus menjelaskan kepada pengguna alasan pintasan dinonaktifkan. Nilai atribut ini tidak berpengaruh jika
android:enabledadalahtrue.android:enabledMenentukan apakah pengguna dapat berinteraksi dengan pintasan dari peluncur yang didukung. Nilai default
android:enabledadalahtrue. Jika Anda menyetelnya kefalse, tetapkanandroid:shortcutDisabledMessageyang menjelaskan alasan Anda menonaktifkan pintasan. Jika Anda merasa tidak perlu memberikan pesan tersebut, hapus pintasan dari file XML sepenuhnya.android:iconBitmap atau ikon adaptif yang digunakan peluncur saat menampilkan pintasan kepada pengguna. Nilai ini dapat berupa jalur ke gambar atau file resource yang berisi gambar. Gunakan ikon adaptif jika memungkinkan untuk meningkatkan performa dan konsistensi.
Mengonfigurasikan elemen internal
File XML yang mencantumkan pintasan statis aplikasi mendukung elemen
berikut di dalam setiap elemen <shortcut>. Anda harus menyertakan elemen dalam intent
untuk setiap pintasan statis yang Anda tentukan.
intentTindakan yang diluncurkan sistem saat pengguna memilih pintasan. Maksud ini harus memberikan nilai untuk atribut
android:action.Anda dapat memberikan beberapa intent untuk satu pintasan. Lihat Mengelola beberapa maksud dan aktivitas, Menetapkan maksud, dan referensi kelas
TaskStackBuilderuntuk mengetahui detailnya.categoriesMenyediakan pengelompokan untuk jenis tindakan yang dilakukan pintasan aplikasi Anda, seperti membuat pesan chat baru.
Untuk mengetahui daftar kategori pintasan yang didukung, lihat referensi class
ShortcutInfo.capability-bindingMendeklarasikan kemampuan yang ditautkan dengan pintasan.
Dalam contoh sebelumnya, pintasan ditautkan ke kemampuan yang dideklarasikan untuk
CREATE_MESSAGE, yang merupakan intent bawaan Action Aplikasi. Pengikatan kemampuan ini memungkinkan pengguna menggunakan perintah lisan dengan Asisten Google untuk memanggil pintasan.
Membuat pintasan dinamis
Pintasan dinamis memberikan link ke tindakan spesifik yang sensitif terhadap konteks dalam aplikasi Anda. Tindakan ini dapat berubah di antara penggunaan aplikasi Anda dan saat aplikasi Anda sedang berjalan. Penggunaan yang baik untuk pintasan dinamis mencakup menelepon orang tertentu, menavigasi ke lokasi tertentu, dan memuat game dari titik simpan terakhir pengguna. Anda juga dapat menggunakan pintasan dinamis untuk membuka percakapan.
Library Jetpack ShortcutManagerCompat adalah bantuan untuk
ShortcutManager API, yang memungkinkan Anda mengelola pintasan dinamis di
aplikasi. Penggunaan library ShortcutManagerCompat mengurangi kode boilerplate dan
membantu memastikan pintasan Anda berfungsi secara konsisten di seluruh versi Android. Library
ini juga diperlukan untuk mengirim pintasan dinamis agar memenuhi syarat
untuk muncul di platform Google—seperti Asisten—dengan Library Integrasi Pintasan Google.
ShortcutManagerCompat API memungkinkan aplikasi Anda melakukan operasi berikut
dengan pintasan dinamis:
- Mendorong dan memperbarui: gunakan
pushDynamicShortcut()untuk memublikasikan dan memperbarui pintasan dinamis Anda. Jika sudah ada pintasan dinamis atau yang disematkan dengan ID yang sama, setiap pintasan yang dapat diubah akan diperbarui. - Remove: menghapus serangkaian pintasan dinamis menggunakan
removeDynamicShortcuts(). Hapus semua pintasan dinamis menggunakanremoveAllDynamicShortcuts().
Untuk mengetahui informasi selengkapnya tentang cara melakukan operasi pada pintasan, lihat Mengelola
pintasan dan referensi ShortcutManagerCompat.
Berikut adalah contoh pembuatan pintasan dinamis dan pengaitannya dengan aplikasi Anda:
val shortcut = ShortcutInfoCompat.Builder(context, "id1") .setShortLabel("Website") .setLongLabel("Open the website") .setIcon(IconCompat.createWithResource(context, R.drawable.icon_website)) .setIntent( Intent( Intent.ACTION_VIEW, Uri.parse("https://www.mysite.example.com/") ) ) .build() ShortcutManagerCompat.pushDynamicShortcut(context, shortcut)
Menambahkan Library Integrasi Pintasan Google
Library Integrasi Pintasan Google adalah library Jetpack opsional. API ini memungkinkan Anda mengirimkan pintasan dinamis yang dapat ditampilkan di platform Android, seperti peluncur, dan platform Google. Menggunakan library ini membantu pengguna menemukan pintasan Anda untuk mengakses konten tertentu dengan cepat atau memutar ulang tindakan di aplikasi Anda.
Pintasan dinamis yang dikirim dengan library ini tidak tunduk pada batas pintasan yang diterapkan berdasarkan per perangkat. Hal ini memungkinkan aplikasi Anda mengirim pintasan setiap kali pengguna menyelesaikan tindakan terkait di aplikasi Anda. Dengan mengirim pintasan yang sering digunakan dengan cara ini, Google dapat memahami pola penggunaan pengguna Anda dan menyarankan pintasan yang relevan secara kontekstual kepada mereka.
Misalnya, Asisten dapat mempelajari dari pintasan yang didorong dari aplikasi pelacakan kebugaran Anda yang biasanya dijalankan pengguna setiap pagi dan secara proaktif menyarankan pintasan "mulai lari" saat pengguna mengambil ponselnya di pagi hari.
Library Integrasi Pintasan Google tidak menawarkan fungsi yang dapat membuat alamat sendiri. Dengan menambahkan library ini ke aplikasi Anda, platform Google dapat
menggunakan pintasan yang didorong aplikasi Anda menggunakan ShortcutManagerCompat.
Untuk menggunakan library ini di aplikasi Anda, tambahkan dependensi untuk Library Integrasi Pintasan Google dan ShortcutManagerCompat ke file app/build.gradle atau
app/build.gradle.kts Anda:
Kotlin
dependencies {
implementation("androidx.core:core:1.6.0")
implementation("androidx.core:core-google-shortcuts:1.0.0")
}
Groovy
dependencies {
implementation "androidx.core:core:1.6.0"
implementation 'androidx.core:core-google-shortcuts:1.0.0'
}
Dengan dependensi library yang ditambahkan ke project Android, aplikasi Anda dapat menggunakan
metode pushDynamicShortcut() dari ShortcutManagerCompat untuk mengirim pintasan dinamis
yang memenuhi syarat untuk ditampilkan di peluncur dan platform Google yang berpartisipasi.
Membuat pintasan yang dipasangi pin
Di Android 8.0 (API level 26) dan yang lebih tinggi, Anda dapat membuat pintasan yang dipasangi pin. Tidak seperti pintasan statis dan dinamis, pintasan yang disematkan muncul di peluncur yang didukung sebagai ikon terpisah. Gambar 1 menunjukkan perbedaan antara kedua jenis pintasan ini.
Untuk menyematkan pintasan ke peluncur yang didukung menggunakan aplikasi Anda, selesaikan langkah-langkah berikut:
- Gunakan
isRequestPinShortcutSupported()untuk memverifikasi bahwa peluncur default perangkat mendukung penyematan pintasan dalam aplikasi. Buat objek
ShortcutInfoCompatyang berisi ID, intent, dan label singkat untuk pintasan. Jika pintasan ada, gunakan ID pintasan yang ada. Sistem akan menemukan dan menyematkan semua informasi lain yang terkait dengan pintasan secara otomatis.Sematkan pintasan ke peluncur perangkat dengan memanggil
requestPinShortcut(). Selama proses ini, Anda dapat meneruskan objekPendingIntent, yang memberi tahu aplikasi Anda hanya saat pintasan disematkan dengan berhasil.Setelah pintasan disematkan, aplikasi Anda dapat memperbarui kontennya menggunakan metode
updateShortcuts(). Untuk mengetahui informasi selengkapnya, baca Memperbarui pintasan.
Cuplikan kode berikut menunjukkan cara membuat pintasan yang disematkan:
if (ShortcutManagerCompat.isRequestPinShortcutSupported(context)) { // Enable the existing shortcut with the ID "my-shortcut". val pinShortcutInfo = ShortcutInfoCompat.Builder(context, "my-shortcut") .setShortLabel("Website") .setIntent( Intent( Intent.ACTION_VIEW, Uri.parse("https://www.mysite.example.com/") ) ) .build() // Create the PendingIntent object only if your app needs to be notified // that the user let the shortcut be pinned. If the pinning operation fails, // your app isn't notified. Assume here that the app implements a method // called createShortcutResultIntent() that returns a broadcast intent. val pinnedShortcutCallbackIntent = ShortcutManagerCompat.createShortcutResultIntent(context, pinShortcutInfo) // Configure the intent so that your app's broadcast receiver gets the // callback successfully. For details, see PendingIntent.getBroadcast(). val successCallback = PendingIntent.getBroadcast( context, /* request code */ 0, pinnedShortcutCallbackIntent, /* flags */ PendingIntent.FLAG_IMMUTABLE ) ShortcutManagerCompat.requestPinShortcut( context, pinShortcutInfo, successCallback.intentSender ) }
Membuat aktivitas pintasan kustom
Anda juga dapat membuat aktivitas khusus yang membantu pengguna membuat pintasan, lengkap dengan opsi kustom dan tombol konfirmasi. Gambar 2 menunjukkan contoh aktivitas jenis ini di aplikasi Gmail.
Di file manifes aplikasi Anda, tambahkan ACTION_CREATE_SHORTCUT ke elemen
<intent-filter> aktivitas. Deklarasi ini menyiapkan perilaku berikut saat pengguna mencoba membuat pintasan:
- Sistem memulai aktivitas khusus aplikasi Anda.
- Pengguna menyetel opsi untuk pintasan.
- Pengguna memilih tombol konfirmasi.
- Aplikasi Anda membuat pintasan menggunakan metode
createShortcutResultIntent(). Metode ini menampilkanIntent, yang diteruskan kembali oleh aplikasi Anda ke aktivitas yang sebelumnya dijalankan menggunakansetResult(). - Aplikasi Anda memanggil
finish()pada aktivitas yang digunakan untuk membuat pintasan yang disesuaikan.
Demikian pula, aplikasi Anda dapat meminta pengguna untuk menambahkan pintasan yang disematkan ke layar utama setelah penginstalan atau saat aplikasi diluncurkan untuk pertama kalinya. Metode ini efektif karena membantu pengguna membuat pintasan sebagai bagian dari alur kerja biasa mereka.
Menguji pintasan
Untuk menguji pintasan aplikasi, instal aplikasi Anda di perangkat dengan peluncur yang mendukung pintasan. Kemudian, jalankan beberapa tindakan berikut:
- Sentuh lama ikon peluncur aplikasi untuk melihat pintasan yang Anda tentukan untuk aplikasi Anda.
- Tarik pintasan untuk menyematkannya ke peluncur perangkat.