1. Tổng quan
Hành động trong ứng dụng cho phép người dùng chạy trực tiếp các tính năng cụ thể của ứng dụng thông qua Trợ lý Google để giúp bạn mở rộng phạm vi tiếp cận của ứng dụng Android. Là nhà phát triển Android, bạn có thể triển khai các chức năng để Trợ lý Google biết loại chức năng mà người dùng có thể sử dụng và cách bạn muốn thực hiện những yêu cầu này.
Trong lớp học lập trình đầu tiên về Hành động trong ứng dụng, bạn đã tìm hiểu cách mở rộng Trợ lý Google sang một ứng dụng thể dục mẫu bằng cách triển khai các ý định tích hợp (BII) từ danh mục BII về Sức khoẻ và thể dục. BII được sắp xếp thành các danh mục đại diện cho những loại thao tác mà người dùng thường yêu cầu Trợ lý thực hiện.
Trong lớp học lập trình này, bạn sẽ tìm hiểu cách thêm Hành động trong ứng dụng vào một ứng dụng bằng cách sử dụng BII từ danh mục BII"Phổ biến". Danh mục này đại diện cho các tác vụ phổ biến trong ứng dụng mà hầu hết mọi ứng dụng Android đều có thể thực hiện.
Lớp học lập trình này đề cập đến các khái niệm ở cấp độ trung cấp để phát triển bằng Hành động trong ứng dụng. Bạn nên có kinh nghiệm phát triển ứng dụng Android và triển khai ý định trên Android.
Sản phẩm bạn sẽ tạo ra
Trong lớp học lập trình này, bạn sẽ thêm 2 BII thường dùng vào một ứng dụng mẫu Danh sách việc cần làm, cho phép người dùng yêu cầu Trợ lý:
- Chuyển đến các tính năng trong ứng dụng bằng BII
actions.intent.OPEN_APP_FEATURE. - Tìm kiếm nội dung bằng tính năng tìm kiếm trong ứng dụng với BII
actions.intent.GET_THING.

Hình 1. Ba màn hình tiến trình cho thấy Trợ lý Google đang hiển thị các việc cần làm trong một ứng dụng.
Kiến thức bạn sẽ học được
Bạn sẽ tìm hiểu cách sử dụng BII danh mục chung để mở rộng Trợ lý cho hầu hết các ứng dụng Android. Bạn cũng sẽ tìm hiểu cách kiểm thử BII phổ biến bằng trình bổ trợ Trợ lý Google cho Android Studio.
Điều kiện tiên quyết
- Một thiết bị đầu cuối để chạy các lệnh shell đã cài đặt git.
- Bản phát hành ổn định mới nhất của Android Studio.
- Một thiết bị Android thực hoặc ảo có quyền truy cập Internet vào Cửa hàng Google Play để kiểm thử các thao tác của bạn.
- Bạn phải đăng nhập vào Android Studio bằng cùng một Tài khoản Google, đồng thời đăng nhập vào cả ứng dụng Google và ứng dụng Trợ lý Google trên thiết bị thử nghiệm.
Trong lớp học lập trình này, bạn sẽ sử dụng một thiết bị Android (thực hoặc ảo) để kiểm thử các thao tác của mình. Nếu bạn đang sử dụng một thiết bị thực, hãy đảm bảo thiết bị đó được kết nối với máy phát triển cục bộ. Bạn cũng phải đăng nhập vào ứng dụng Google trên thiết bị và đăng nhập vào Android Studio bằng cùng một Tài khoản Google. Thiết bị cũng phải cài đặt ứng dụng Trợ lý Google.
2. Tìm hiểu cách hoạt động
Hành động trong ứng dụng kết nối người dùng từ Trợ lý Google với ứng dụng Android của bạn. Nhưng chúng hoạt động như thế nào?
Khi người dùng cho Trợ lý biết rằng họ muốn dùng ứng dụng của bạn, Trợ lý sẽ tìm Hành động trong ứng dụng đã đăng ký trên ứng dụng của bạn trong tệp shortcuts.xml. Tệp này chứa các chức năng của ứng dụng, liên kết một ý định tích hợp hoặc ý định tuỳ chỉnh của Trợ lý với một ý định hoặc đường liên kết sâu của Android.
Khi người dùng nói một cụm từ tìm kiếm với Trợ lý, Trợ lý sẽ phân tích cú pháp thông tin đầu vào của người dùng và so khớp thông tin đó với một ý định Hành động trong ứng dụng (trong lớp học lập trình này, đó sẽ là một BII). Trợ lý biết những chức năng mà bạn hỗ trợ từ tệp shortcuts.xml trong Ứng dụng Android. Với kết quả khớp ý định, chức năng có BII đó sẽ cho biết cách bạn muốn thực hiện yêu cầu đó. Trong lớp học lập trình này, việc thực hiện là một ý định của Android giúp khởi chạy một hoạt động trong ứng dụng của bạn.
Sơ đồ sau đây cho thấy quy trình này của Trợ lý:
Hình 2. Một quy trình mô tả cách Trợ lý Google xử lý câu hỏi bằng giọng nói.
Tệp dự án shortcuts.xml chứa thông tin sau cho mỗi Thao tác với ứng dụng:
- Ý định tích hợp hoặc ý định tuỳ chỉnh mà Hành động trong ứng dụng sử dụng
- Người dùng nên được cung cấp hoạt động hoặc đường liên kết sâu nào trên Android
- Cách các tham số cho ý định tích hợp liên kết với thông tin do người dùng cung cấp cho Trợ lý
Sau đó, hoạt động Android của bạn sẽ lọc và xử lý ý định hoặc đường liên kết sâu được cung cấp trên Android để cung cấp cho người dùng chức năng mà họ mong muốn. Kết quả là người dùng sẽ có trải nghiệm mà Trợ lý gọi chức năng của ứng dụng để phản hồi truy vấn của người dùng.
3. Chuẩn bị môi trường phát triển
Lớp học lập trình này sử dụng ứng dụng mẫu Danh sách việc cần làm cho Android. Ứng dụng mẫu này có thể thêm các mục vào danh sách việc cần làm, tìm kiếm các mục theo danh mục và xem thông tin về các việc đã hoàn thành.
Tải tệp cơ sở xuống
Chạy lệnh sau để sao chép kho lưu trữ GitHub của ứng dụng mẫu:
git clone --branch codelab-start https://github.com/actions-on-google/appactions-common-biis-kotlin.git
Sau khi sao chép kho lưu trữ, hãy làm theo các bước sau để mở kho lưu trữ đó trong Android Studio:
- Trong hộp thoại Welcome to Android Studio (Chào mừng bạn đến với Android Studio), hãy nhấp vào Import project (Nhập dự án).
- Tìm và chọn thư mục nơi bạn đã sao chép kho lưu trữ.
Để xem phiên bản ứng dụng đại diện cho lớp học lập trình đã hoàn thành, hãy sao chép kho lưu trữ ứng dụng mẫu bằng cách sử dụng cờ --branch master.
Cập nhật mã ứng dụng Android
Việc cập nhật mã ứng dụng của ứng dụng sẽ giúp nhận dạng duy nhất ứng dụng trên thiết bị thử nghiệm của bạn và tránh lỗi "Tên gói trùng lặp" nếu ứng dụng được tải lên Play Console. Để cập nhật mã ứng dụng, hãy mở app/build.gradle:
android {
...
defaultConfig {
applicationId "com.MYUNIQUENAME.android.fitactions"
...
}
}
Thay thế "MYUNIQUENAME" trong trường applicationId bằng một tên riêng biệt cho bạn.
Kiểm thử ứng dụng trên thiết bị
Trước khi thực hiện thêm các thay đổi cho ứng dụng, bạn nên tìm hiểu xem ứng dụng mẫu có thể làm gì. Để chạy ứng dụng trên trình mô phỏng, hãy làm theo các bước sau:
- Trong Android Studio, hãy chọn Run > Run app (Chạy > Chạy ứng dụng) hoặc nhấp vào biểu tượng Run
(Chạy) trên thanh công cụ. - Trong hộp thoại Select Deployment Target (Chọn mục tiêu triển khai), hãy chọn một thiết bị rồi nhấp vào OK. Phiên bản hệ điều hành được đề xuất là Android 10 (cấp độ API 30) trở lên, mặc dù Hành động có thể chạy trên thiết bị từ Android 5 (cấp độ API 21).
- Nhấn và giữ nút Màn hình chính để thiết lập Trợ lý và xác minh xem Trợ lý có hoạt động hay không. Bạn sẽ cần đăng nhập vào Trợ lý trên thiết bị của mình (nếu chưa đăng nhập).
Để biết thêm thông tin về thiết bị ảo Android, hãy xem bài viết Tạo và quản lý thiết bị ảo.

Hình 3. Ảnh động minh hoạ ứng dụng mẫu Danh sách việc cần làm.
Khám phá nhanh ứng dụng để xem những việc bạn có thể làm. Khi nhấn vào biểu tượng Dấu cộng, một mục việc cần làm mới sẽ được tạo và các mục trình đơn ở trên cùng bên phải cho phép bạn tìm kiếm và lọc các mục việc cần làm theo trạng thái hoàn thành.
Cài đặt trình bổ trợ kiểm thử
Trình bổ trợ Trợ lý Google cho phép bạn kiểm thử Hành động trong ứng dụng trên một thiết bị thử nghiệm. Nếu bạn chưa có công cụ kiểm thử, hãy cài đặt công cụ này bằng cách làm theo các bước sau:
- Chuyển đến mục File > Settings (Tệp > Cài đặt) hoặc Android Studio > Preferences (Android Studio > Lựa chọn ưu tiên) trên MacOS.
- Trong mục Trình bổ trợ, hãy chuyển đến Marketplace rồi tìm "Trợ lý Google".Bạn cũng có thể tải và cài đặt công cụ kiểm thử theo cách thủ công.
- Nếu không tìm thấy trình bổ trợ trên Marketplace, hãy tải trình bổ trợ xuống theo cách thủ công và làm theo hướng dẫn trong phần Cài đặt trình bổ trợ từ đĩa.
- Cài đặt công cụ rồi khởi động lại Android Studio.
4. Thêm chức năng Get Thing BII
BII actions.intent.GET_THING mở rộng chức năng tìm kiếm trong ứng dụng của bạn sang Trợ lý Google. Trong bước này, bạn sẽ triển khai và kiểm thử BII GET_THING, cho phép người dùng tìm kiếm các tác vụ cụ thể trong ứng dụng mẫu.
Xác định chức năng Get Thing
Trong Hành động trong ứng dụng liên quan đến tìm kiếm, Trợ lý sẽ trích xuất cụm từ tìm kiếm từ truy vấn của người dùng vào tham số BII thing.name, sau đó truyền giá trị đó đến ứng dụng Android.
Để thêm BII GET_THING vào ứng dụng, hãy cập nhật shortcuts.xml (nằm trong thư mục dự án mẫu app/src/main/res/xml) bằng một phần tử <capability> trong thẻ <shortcuts> cấp cao nhất:
shortcuts.xml
<shortcuts ....>
<capability android:name="actions.intent.GET_THING">
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.yourApplicationId.appaction"
android:targetClass="com.example.android.architecture.blueprints.todoapp.tasks.TasksActivity">
<parameter
android:name="thing.name"
android:key="q"/>
</intent>
</capability>
</shortcuts>
Cấu hình ở trên:
- Khai báo rằng ứng dụng phản hồi BII
GET_THING. - Chỉ định cách tạo một ý định trên Android để chạy ứng dụng nhằm phản hồi BII đó.
- Hoạt động được xác định bằng cách sử dụng
targetPackagevàtargetClass. - Tham số BII
thing.nameđược ánh xạ vào Intent Extra có tên làq.
- Hoạt động được xác định bằng cách sử dụng
Hoạt động được đặt tên phải có trong tệp kê khai của ứng dụng và được xuất.
Ứng dụng Android mà bạn cung cấp có chứa siêu dữ liệu nên AndroidManifest nhận biết được tệp shortcuts.xml:
<meta-data
android:name="android.app.shortcuts"
android:resource="@xml/shortcuts" />
Kiểm thử Hành động trong ứng dụng
Để kiểm thử tính năng tìm kiếm trong ứng dụng cho ứng dụng của bạn thông qua Trợ lý, hãy làm theo các bước sau:
- Đảm bảo thiết bị Android của bạn đã kết nối.
- Chuyển đến Tools > Google Assistant > App Actions Test Tool (Công cụ > Trợ lý Google > Công cụ kiểm tra hành động trong ứng dụng).
- Nhấp vào Tạo bản xem trước để chấp nhận các giá trị mặc định cho Tên ứng dụng và ngôn ngữ. Nếu được yêu cầu, hãy xem xét và chấp nhận các chính sách và điều khoản dịch vụ về Hành động trong ứng dụng.
- Ở bước đầu tiên khi công cụ yêu cầu bạn chọn và định cấu hình một BII, hãy chọn
actions.intent.GET_THING. Thay đổi giá trịnametừrunning shoesthànhmilk. - Nhấp vào Run App Action (Chạy thao tác trên ứng dụng).
Trong thử nghiệm này, BII GET_THING sử dụng thuộc tính name để tìm kiếm các việc cần làm có chứa "sữa" trong ứng dụng. Giống như Hành động trong ứng dụng trước đó, bạn có thể kiểm thử hành động của mình bằng công cụ kiểm thử hoặc chỉ cần nói "Ok Google, hãy tìm bột làm bánh trong Danh sách việc cần làm" hoặc các cụm từ tìm kiếm khác trên thiết bị thử nghiệm.
5. Thêm chức năng BII của tính năng Mở ứng dụng
Trong bước này, bạn sẽ triển khai BII tính năng Mở ứng dụng, cho phép người dùng xem các việc cần làm đang thực hiện và đã hoàn thành bằng Trợ lý. Để thực hiện việc này, hãy hoàn tất chức năng trong shortcuts.xml. Chức năng này chứa thông tin về cách kích hoạt chức năng, cách truyền tham số và ý định nào của Android cần gọi. Trong lớp học lập trình này, bạn sẽ sử dụng OPEN_APP_FEATURE BII. Sau khi triển khai BII này, bạn sẽ kiểm thử Hành động trên thiết bị của mình.
Thêm tính năng Mở ứng dụng
Thêm khả năng thứ hai cho tính năng Mở ứng dụng trong shortcuts.xml bên dưới phần tử Get Thing Capability:
shortcuts.xml
<capability android:name="actions.intent.OPEN_APP_FEATURE">
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="yourApplicationId"
android:targetClass="com.example.android.architecture.blueprints.todoapp.tasks.TasksActivity">
<parameter
android:name="feature"
android:key="feature"/>
</intent>
</capability>
Khả năng này liên kết BII của tính năng Mở ứng dụng với ý định trên Android, vì vậy khi tính năng Mở ứng dụng được kích hoạt, ý định trên Android cũng sẽ được kích hoạt.
Trước khi kích hoạt ý định Android, các thông số được hỗ trợ sẽ được lấy từ thông tin đầu vào của người dùng. BII OPEN_APP_FEATURE hỗ trợ một tham số, feature, đại diện cho tính năng ứng dụng được trích xuất từ truy vấn của người dùng. Ứng dụng này sẽ hỗ trợ 2 loại tính năng: Việc cần làm và Việc đã hoàn thành. Các tính năng này cho phép người dùng mở ứng dụng với chế độ xem được lọc của danh sách việc cần làm. Bạn cần sử dụng kho hàng trong dòng để hỗ trợ các tính năng này.
Xử lý các tham số về ý định bằng khoảng không quảng cáo nội tuyến
Tham số ý định đại diện cho các phần tử được trích xuất từ một truy vấn của người dùng. Ví dụ: nếu người dùng nói những câu như "Ok Google, hãy đặt pizza trên ExampleApp", Trợ lý sẽ trích xuất "pizza" thành một tham số ý định food.item schema.org và truyền tham số đó đến hành động của bạn để xử lý.
BII của tính năng Mở ứng dụng hỗ trợ một tham số, feature, đại diện cho tính năng ứng dụng được trích xuất từ truy vấn của người dùng. Bạn phải có khoảng không quảng cáo nội tuyến cho tham số này, cung cấp cho Trợ lý một tập hợp tên tính năng ứng dụng được hỗ trợ để so khớp với giá trị tham số.
Để xử lý tham số ý định feature, hãy thêm một lối tắt vào shortcuts.xml bằng đoạn mã sau ở trên tính năng Mở ứng dụng:
shortcuts.xml
<shortcut
android:shortcutId="active_tasks"
android:shortcutShortLabel="@string/label_active"
android:enabled="false">
<capability-binding
android:key="actions.intent.OPEN_APP_FEATURE">
<parameter-binding
android:key="feature"
android:value="@array/active_tasks_synonyms" />
</capability-binding>
</shortcut>
<shortcut
android:shortcutId="completed_tasks"
android:shortcutShortLabel="@string/label_completed"
android:enabled="false">
<capability-binding
android:key="actions.intent.OPEN_APP_FEATURE">
<parameter-binding
android:key="feature"
android:value="@array/completed_tasks_synonyms" />
</capability-binding>
</shortcut>
Trong đoạn mã trên, bạn đã xác định một khoảng không quảng cáo nội tuyến, được biểu thị dưới dạng các phần tử shortcut có khả năng và liên kết tham số. Bạn có thể sử dụng lối tắt làm khoảng không quảng cáo cho các tham số BII. Trợ lý Google so khớp truy vấn của người dùng với các giá trị trong hoạt động liên kết tham số của Lối tắt. Đối với giá trị tham số được so khớp, shortcutId sẽ được thêm vào ý định thực hiện. Khi người dùng kích hoạt BII OPEN_APP_FEATURE bằng một yêu cầu, Trợ lý sẽ so khớp giá trị tham số của tính năng với thuộc tính giá trị của một lối tắt, truyền giá trị đó đến targetClass dưới dạng parameter trong Extra.
Ví dụ: nếu người dùng nói những câu như "Ok Google, cho tôi xem các việc đã hoàn thành trong ExampleApp", thì Trợ lý sẽ so khớp giá trị tham số ý định về tính năng "các việc đã hoàn thành" với lối tắt tương ứng trong khoảng không quảng cáo, từ đó chuyển giá trị đó đến chức năng OPEN_APP_FEATURE. Sau đó, Trợ lý sẽ kích hoạt ý định Android.
Kiểm thử Hành động trong ứng dụng
Trong quá trình phát triển và kiểm thử, bạn sẽ sử dụng trình bổ trợ Trợ lý Google để xem trước Hành động trong ứng dụng bằng Trợ lý trên một thiết bị thử nghiệm. Bạn cũng có thể dùng công cụ này để điều chỉnh các tham số ý định cho một Hành động trong ứng dụng, nhằm kiểm thử cách hành động của bạn xử lý nhiều cách mà người dùng có thể yêu cầu Trợ lý kích hoạt hành động đó.
Để kiểm thử Hành động trong ứng dụng bằng công cụ kiểm thử, hãy làm theo các bước sau:
- Kết nối thiết bị thử nghiệm Android thực hoặc khởi động Trình mô phỏng Android
- Nếu không thấy công cụ kiểm thử, hãy mở công cụ này bằng cách chuyển đến Tools > Google Assistant > App Actions Test Tool (Công cụ > Trợ lý Google > Công cụ kiểm thử hành động trong ứng dụng).
- Nhấp vào nút Cập nhật để làm mới bản xem trước.
- Ở bước đầu tiên khi công cụ yêu cầu bạn chọn và định cấu hình một BII, hãy chọn
actions.intent.OPEN_APP_FEATURE. - Trong hộp feature (tính năng), hãy cập nhật giá trị mặc định
HistorybằngCompleted tasks. - Nhấp vào Run App Action (Chạy thao tác trên ứng dụng).
Ngoài ra, bạn có thể sử dụng tên lệnh gọi ngay trong ứng dụng Trợ lý trên thiết bị của mình để thử Hành động trong ứng dụng. Ví dụ: bạn có thể nói "Ok Google, cho tôi xem những việc cần làm đã hoàn tất trong Danh sách việc cần làm".
6. Các bước tiếp theo
Xin chúc mừng!
Giờ đây, bạn có thể cho phép hầu hết mọi ứng dụng Android hoạt động với Trợ lý Google bằng cách sử dụng các BII phổ biến.
Nội dung đã đề cập
Trong lớp học lập trình này, bạn đã tìm hiểu:
- Cách cho phép người dùng khám phá sâu các tính năng cụ thể của ứng dụng bằng Trợ lý.
- Cách người dùng có thể truy cập tính năng tìm kiếm trong ứng dụng thông qua Trợ lý.
- Cách kiểm thử các BII phổ biến bằng Trình bổ trợ Trợ lý Google.
Bước tiếp theo
Từ đây, bạn có thể thử tinh chỉnh thêm cho ứng dụng Danh sách việc cần làm. Để tham khảo dự án đã hoàn thành, hãy xem nhánh chính của kho lưu trữ trên GitHub.
Sau đây là một số đề xuất để bạn tìm hiểu thêm về việc mở rộng ứng dụng này bằng Hành động trong ứng dụng:
- Hãy xem Mẫu danh sách việc cần làm bằng Google Analytics cho Firebase để tìm hiểu cách theo dõi hiệu suất của Hành động trong ứng dụng.
- Hãy truy cập vào tài liệu tham khảo về ý định tích hợp của Hành động trong ứng dụng để khám phá thêm nhiều cách mở rộng ứng dụng của bạn cho Trợ lý.
Để tiếp tục hành trình của bạn trên Actions on Google, hãy khám phá những tài nguyên sau:
- developers.google.com/assistant: Trang web tài liệu chính thức cho Actions on Google.
- Chỉ mục mẫu về Hành động trong ứng dụng: Ứng dụng và mã mẫu để khám phá các chức năng của Hành động trong ứng dụng.
- Kho lưu trữ Actions on Google trên GitHub: Mã mẫu và thư viện.
- r/GoogleAssistantDev: Cộng đồng Reddit chính thức dành cho các nhà phát triển làm việc với Trợ lý Google.
Theo dõi chúng tôi trên Twitter @ActionsOnGoogle để nắm bắt những thông báo mới nhất của chúng tôi, đồng thời đăng bài lên Twitter kèm thẻ hashtag #AoGDevs để chia sẻ những gì bạn đã tạo!
Khảo sát nhận phản hồi
Cuối cùng, vui lòng điền vào khảo sát này để đưa ra ý kiến phản hồi về trải nghiệm của bạn với lớp học lập trình này.