Lối tắt giúp phân phối nội dung người dùng muốn xem bằng cách giúp họ nhanh chóng truy cập các thành phần của ứng dụng.
Cách thức phân phối nội dung bằng lối tắt sẽ tuỳ thuộc vào trường hợp sử dụng và liệu ngữ cảnh của lối tắt là theo hướng ứng dụng hay hướng đến người dùng. Mặc dù ngữ cảnh của lối tắt tĩnh không thay đổi và ngữ cảnh của lối tắt động liên tục thay đổi, nhưng ứng dụng của bạn sẽ điều khiển ngữ cảnh trong cả hai trường hợp. Trong trường hợp người dùng chọn cách ứng dụng của bạn phân phối nội dung cho họ (chẳng hạn như với một lối tắt được ghim), ngữ cảnh sẽ do người dùng xác định. Các tình huống sau đây mô tả một vài trường hợp sử dụng cho từng loại lối tắt:
- Lối tắt tĩnh phù hợp nhất với những ứng dụng liên kết đến nội dung bằng cách sử dụng cấu trúc nhất quán trong suốt vòng đời người dùng tương tác với ứng dụng. Vì hầu hết trình chạy chỉ hiển thị 4 lối tắt cùng một lúc, nên lối tắt tĩnh hữu ích khi thực hiện một thao tác thông thường theo cách nhất quán, chẳng hạn như nếu người dùng muốn xem lịch hoặc email theo một cách cụ thể.
- Lối tắt động được dùng cho các thao tác trong ứng dụng theo ngữ cảnh. Lối tắt theo ngữ cảnh được điều chỉnh cho phù hợp với các hành động mà người dùng thực hiện trong ứng dụng. Ví dụ: nếu bạn phát triển một trò chơi cho phép người dùng bắt đầu từ cấp độ hiện tại khi chạy ứng dụng, thì bạn cần thường xuyên cập nhật lối tắt. Việc sử dụng lối tắt động cho phép bạn cập nhật lối tắt mỗi khi người dùng vượt qua một cấp độ.
- Lối tắt được ghim dùng cho các thao tác cụ thể do người dùng thực hiện. Ví dụ: người dùng có thể muốn ghim một trang web cụ thể vào trình chạy. Lối tắt được ghim có ích vì nó cho phép người dùng thực hiện một thao tác tuỳ chỉnh (chẳng hạn như di chuyển đến trang web chỉ trong một bước) một cách nhanh chóng hơn so với việc sử dụng một phiên bản mặc định của trình duyệt.
Tạo lối tắt tĩnh
Lối tắt tĩnh cung cấp đường liên kết đến các thao tác chung trong ứng dụng của bạn và các thao tác này phải nhất quán trong suốt thời gian hoạt động của phiên bản hiện tại của ứng dụng. Những thao tác có thể tạo lối tắt tĩnh bao gồm xem thư đã gửi, đặt báo thức và hiển thị hoạt động tập thể dục của người dùng trong ngày.
Để tạo một lối tắt tĩnh, hãy làm như sau:
- Trong tệp
AndroidManifest.xmlcủa ứng dụng, hãy tìm hoạt động có bộ lọc ý định được đặt thành thao tácandroid.intent.action.MAINvà danh mụcandroid.intent.category.LAUNCHER. Thêm phần tử
<meta-data>vào hoạt động tham chiếu đến tệp tài nguyên nơi định nghĩa lối tắt của ứng dụng:<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>Tạo một tệp tài nguyên mới có tên là
res/xml/shortcuts.xml.Trong tệp tài nguyên mới, hãy thêm một phần tử gốc
<shortcuts>chứa danh sách các phần tử<shortcut>. Trong mỗi phần tử<shortcut>, hãy thêm thông tin về một lối tắt tĩnh, bao gồm biểu tượng, nhãn mô tả và ý định của lối tắt khi được khởi chạy trong ứng dụng:<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>
Tuỳ chỉnh các giá trị thuộc tính
Danh sách sau đây chứa nội dung mô tả các thuộc tính khác nhau trong lối tắt tĩnh. Cung cấp giá trị cho android:shortcutId và android:shortcutShortLabel. Tất cả các giá trị khác là không bắt buộc.
android:shortcutIdMột chuỗi ký tự đại diện cho lối tắt khi một đối tượng
ShortcutManagerthực hiện các thao tác trên lối tắt đó.android:shortcutShortLabelCụm từ ngắn gọn mô tả mục đích của lối tắt. Khi có thể, hãy giới hạn nội dung mô tả ngắn này ở mức 10 ký tự.
Để biết thêm thông tin, hãy xem
setShortLabel().android:shortcutLongLabelCụm từ mở rộng mô tả mục đích của lối tắt. Nếu có đủ khoảng trống, trình chạy sẽ hiển thị giá trị này thay vì
android:shortcutShortLabel. Khi có thể, hãy giới hạn nội dung mô tả dài này ở mức 25 ký tự.Để biết thêm thông tin, hãy xem
setLongLabel().android:shortcutDisabledMessageThông báo xuất hiện trong trình chạy được hỗ trợ khi người dùng cố gắng chạy một lối tắt bị vô hiệu hoá. Thông báo phải giải thích cho người dùng lý do lối tắt bị vô hiệu hoá. Giá trị của thuộc tính này không có hiệu lực nếu
android:enabledlàtrue.android:enabledXác định xem người dùng có thể tương tác với lối tắt từ một trình chạy được hỗ trợ hay không. Giá trị mặc định của
android:enabledlàtrue. Nếu bạn đặt giá trị này thànhfalse, hãy đặt mộtandroid:shortcutDisabledMessageđể giải thích lý do bạn vô hiệu hoá lối tắt. Nếu không cần phải thông báo như vậy, hãy xoá hoàn toàn lối tắt khỏi tệp XML.android:iconBitmap hoặc biểu tượng thích ứng mà trình chạy sử dụng khi hiển thị lối tắt cho người dùng. Giá trị này có thể là đường dẫn đến một hình ảnh hoặc tệp tài nguyên chứa hình ảnh. Sử dụng các biểu tượng thích ứng bất cứ khi nào có thể để cải thiện hiệu suất và tính nhất quán.
Định cấu hình các thành phần bên trong
Tệp XML liệt kê các lối tắt tĩnh của một ứng dụng sẽ hỗ trợ các phần tử sau bên trong mỗi phần tử <shortcut>. Bạn phải thêm một phần tử bên trong intent cho mỗi lối tắt tĩnh mà bạn xác định.
intentThao tác mà hệ thống khởi chạy khi người dùng chọn lối tắt. Ý định này phải cung cấp một giá trị cho thuộc tính
android:action.Bạn có thể cung cấp nhiều ý định cho một lối tắt. Xem bài viết Quản lý nhiều ý định và hoạt động, Đặt ý định và tài liệu tham khảo lớp
TaskStackBuilderđể biết thêm thông tin chi tiết.categoriesNhóm các loại thao tác mà lối tắt của ứng dụng thực hiện, chẳng hạn như tạo tin nhắn trò chuyện mới.
Để biết danh sách các danh mục lối tắt được hỗ trợ, hãy xem tài liệu tham khảo về lớp
ShortcutInfo.capability-bindingKhai báo khả năng được liên kết với lối tắt.
Trong ví dụ trước, khẩu lệnh nhanh được liên kết với một khả năng được khai báo cho
CREATE_MESSAGE. Đây là ý định tích hợp của Hành động trong ứng dụng. Việc liên kết chức năng này cho phép người dùng sử dụng lệnh thoại để gọi một lối tắt thông qua Trợ lý Google.
Tạo lối tắt động
Lối tắt động cung cấp đường liên kết đến các thao tác theo ngữ cảnh cụ thể trong ứng dụng. Những thao tác này có thể thay đổi giữa những lần sử dụng ứng dụng và khi ứng dụng đang chạy. Một số ví dụ điển hình về trường hợp sử dụng lối tắt động bao gồm gọi điện cho ai đó, di chuyển đến một vị trí cụ thể và tải một trò chơi tại điểm lưu cuối cùng của người dùng. Bạn cũng có thể dùng các lối tắt động để mở một cuộc trò chuyện.
Thư viện Jetpack ShortcutManagerCompat là một trình trợ giúp cho API ShortcutManager, cho phép bạn quản lý các lối tắt động trong ứng dụng của mình. Việc sử dụng thư viện ShortcutManagerCompat sẽ giảm mã nguyên mẫu và giúp đảm bảo rằng các lối tắt của bạn hoạt động nhất quán trên các phiên bản Android. Bạn cũng cần thư viện này để đẩy các lối tắt động để chúng đủ điều kiện xuất hiện trên các nền tảng của Google (chẳng hạn như Trợ lý) cùng với Thư viện tích hợp lối tắt của Google.
API ShortcutManagerCompat cho phép ứng dụng thực hiện các thao tác sau bằng lối tắt động:
- Đẩy và cập nhật: sử dụng
pushDynamicShortcut()để phát hành và cập nhật lối tắt động. Nếu đã có lối tắt động hoặc lối tắt được ghim có cùng mã nhận dạng, thì từng lối tắt có thể thay đổi sẽ được cập nhật. - Xoá: xoá một nhóm lối tắt động bằng
removeDynamicShortcuts(). Xoá tất cả lối tắt động bằng cách sử dụngremoveAllDynamicShortcuts().
Để biết thêm thông tin về cách thực hiện các thao tác trên lối tắt, hãy xem bài viết Quản lý lối tắt và tài liệu tham khảo ShortcutManagerCompat.
Sau đây là ví dụ về cách tạo một lối tắt động và liên kết lối tắt đó với ứng dụng của bạn:
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)
Thêm Thư viện tích hợp lối tắt của Google
Thư viện tích hợp lối tắt của Google là thư viện Jetpack không bắt buộc. Thư viện này cho phép bạn đẩy các lối tắt động có thể hiển thị trên các nền tảng của Android, chẳng hạn như trình chạy và các nền tảng của Google. Việc sử dụng thư viện này giúp người dùng khám phá các lối tắt để truy cập nhanh vào một số nội dung cụ thể hoặc lập lại các thao tác trong ứng dụng.
Các lối tắt động được đẩy bằng thư viện này không phải tuân theo giới hạn về lối tắt được thực thi trên cơ sở mỗi thiết bị. Việc này cho phép ứng dụng của bạn đẩy một lối tắt mỗi khi người dùng hoàn tất một hành động được liên kết trong ứng dụng. Việc đẩy các lối tắt thường xuyên theo cách này giúp Google hiểu được các mẫu sử dụng của người dùng và đề xuất cho họ những lối tắt phù hợp theo ngữ cảnh.
Ví dụ: Trợ lý có thể học từ các lối tắt được đẩy từ ứng dụng theo dõi sức khoẻ của bạn rằng người dùng thường chạy bộ mỗi buổi sáng và chủ động đề xuất một lối tắt "bắt đầu chạy bộ" khi người dùng cầm điện thoại lên vào buổi sáng.
Thư viện tích hợp lối tắt của Google không cung cấp bất kỳ chức năng cho phép truy cập vào bất kỳ địa chỉ nào. Khi thêm thư viện này vào ứng dụng, các nền tảng của Google sẽ có thể lấy các lối tắt mà ứng dụng đẩy bằng ShortcutManagerCompat.
Để sử dụng thư viện này trong ứng dụng, hãy làm theo các bước sau:
Cập nhật tệp
gradle.propertiesđể hỗ trợ thư viện AndroidX:android.useAndroidX=true # Automatically convert third-party libraries to use AndroidX android.enableJetifier=trueTrong
app/build.gradle, hãy thêm các phần phụ thuộc cho Thư viện tích hợp lối tắt của Google vàShortcutManagerCompat:dependencies { implementation "androidx.core:core:1.6.0" implementation 'androidx.core:core-google-shortcuts:1.0.0' ... }
Sau khi thêm các phần phụ thuộc của thư viện vào dự án Android, ứng dụng có thể sử dụng phương thức pushDynamicShortcut() từ ShortcutManagerCompat để đẩy các lối tắt động đủ điều kiện hiển thị trên Trình chạy và các nền tảng tham gia của Google.
Tạo lối tắt được ghim
Bạn có thể tạo lối tắt được ghim trên Android 8.0 (API cấp 26) trở lên. Không giống như lối tắt tĩnh và động, lối tắt được ghim sẽ xuất hiện trong những trình chạy được hỗ trợ dưới dạng biểu tượng riêng biệt. Hình 1 cho thấy sự khác biệt giữa hai loại lối tắt này.
Để ghim lối tắt vào một trình chạy được hỗ trợ bằng ứng dụng, hãy hoàn tất các bước sau:
- Sử dụng
isRequestPinShortcutSupported()để xác minh rằng trình chạy mặc định của thiết bị có hỗ trợ tính năng ghim lối tắt trong ứng dụng. Tạo đối tượng
ShortcutInfotheo một trong hai cách, tuỳ thuộc vào việc lối tắt có tồn tại hay không:- Nếu đã có lối tắt, hãy tạo một đối tượng
ShortcutInfochỉ chứa ID của lối tắt hiện có. Hệ thống sẽ tự động tìm và ghim tất cả thông tin khác liên quan đến lối tắt. - Nếu ghim một lối tắt mới, hãy tạo một đối tượng
ShortcutInfochứa một mã nhận dạng, ý định và nhãn ngắn cho lối tắt mới.
- Nếu đã có lối tắt, hãy tạo một đối tượng
Ghim lối tắt vào trình chạy của thiết bị bằng cách gọi
requestPinShortcut(). Trong quá trình này, bạn có thể truyền đối tượngPendingIntent, qua đó thông báo cho ứng dụng biết khi ghim thành công lối tắt.Sau khi lối tắt được ghim, ứng dụng có thể cập nhật nội dung bằng phương thức
updateShortcuts(). Để biết thêm thông tin, hãy đọc bài viết Cập nhật lối tắt.
Đoạn mã sau đây minh hoạ cách tạo một lối tắt được ghim.
val shortcutManager = getSystemService<ShortcutManager>()
if (shortcutManager!!.isRequestPinShortcutSupported) {
// Enable the existing shortcut with the ID "my-shortcut".
val pinShortcutInfo = ShortcutInfo.Builder(context, "my-shortcut").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 = shortcutManager.createShortcutResultIntent(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 */ 0)
shortcutManager.requestPinShortcut(pinShortcutInfo,
successCallback.intentSender)
}
Tạo một hoạt động lối tắt tuỳ chỉnh
Bạn cũng có thể tạo một hoạt động đặc biệt giúp người dùng tạo lối tắt, hoàn tất bằng các tuỳ chọn tuỳ chỉnh và nút xác nhận. Hình 2 là ví dụ về loại hoạt động này trong ứng dụng Gmail.
Trong tệp kê khai của ứng dụng, hãy thêm ACTION_CREATE_SHORTCUT vào phần tử <intent-filter> của hoạt động. Khai báo này thiết lập hành vi sau đây khi người dùng cố gắng tạo một lối tắt:
- Hệ thống sẽ bắt đầu hoạt động đặc biệt của ứng dụng.
- Người dùng đặt các tuỳ chọn cho phím tắt.
- Người dùng chọn nút xác nhận.
- Ứng dụng của bạn tạo lối tắt bằng phương thức
createShortcutResultIntent(). Phương thức này trả về mộtIntentmà ứng dụng sẽ chuyển tiếp về hoạt động đang được thực hiện trước đó bằngsetResult(). - Ứng dụng sẽ gọi
finish()dựa trên hoạt động dùng để tạo lối tắt tuỳ chỉnh.
Tương tự, ứng dụng có thể nhắc người dùng thêm lối tắt được ghim vào màn hình chính sau khi cài đặt hoặc trong lần đầu tiên người dùng chạy ứng dụng. Phương thức này hiệu quả vì nó giúp người dùng tạo lối tắt trong quá trình làm việc thông thường.
Kiểm thử lối tắt
Để kiểm thử các lối tắt của ứng dụng, hãy cài đặt ứng dụng trên một thiết bị có trình chạy hỗ trợ lối tắt. Sau đó, thực hiện những thao tác sau:
- Chạm và giữ biểu tượng trình chạy của ứng dụng để xem các lối tắt mà bạn xác định cho ứng dụng.
- Kéo một lối tắt để ghim vào trình chạy của thiết bị.