Xây dựng Hành động trong ứng dụng

Hành động trong ứng dụng cho phép người dùng chạy chức năng trong ứng dụng Android của bạn bằng cách hỏi Trợ lý Google hoặc sử dụng lối tắt Android do Trợ lý đề xuất. Dưới đây là các bước chính để mở rộng ứng dụng Android của bạn bằng Hành động trong ứng dụng:

  1. Xác định chức năng trong ứng dụng để kích hoạt và so khớp ý định tích hợp (BII).
  2. Cung cấp thông tin chi tiết về phương thức thực hiện cho BII.
  3. Đẩy lối tắt cho Hành động trong ứng dụng đến Trợ lý.
  4. Xem trước Hành động trong ứng dụng trên thiết bị thử nghiệm.
  5. Tạo một bản phát hành thử nghiệm của ứng dụng.
  6. Yêu cầu xem xét và triển khai Hành động trong ứng dụng.

Bạn có thể tuỳ ý xác định các lối tắt động và cung cấp cho Trợ lý để có thể đề xuất cho người dùng. Hãy dùng một ứng dụng mẫu và tạo Hành động trong ứng dụng bằng cách làm theo hướng dẫn có ở Lớp học lập trình về Hành động trong ứng dụng.

Yêu cầu

Trước khi bắt đầu phát triển Hành động trong ứng dụng, vui lòng đáp ứng các yêu cầu sau:

  • Bạn phải sở hữu một Tài khoản Google có quyền truy cập vào Google Play Console.
  • Bạn phải xuất bản ứng dụng của mình trên Cửa hàng Google Play, vì Hành động trong ứng dụng chỉ sử dụng được cho các ứng dụng được xuất bản ở đó. Ngoài ra, hãy đảm bảo ứng dụng của bạn không nhằm mục đích sử dụng trong hồ sơ công việc, vì Managed Google Play không hỗ trợ Hành động trong ứng dụng.
  • Bạn cần kiểm thử Hành động trong ứng dụng một thiết bị thực hoặc thiết bị ảo.
  • Bạn cần dùng phiên bản Android Studio mới nhất.
  • Bạn phải sử dụng cùng một Tài khoản Google để đăng nhập vào Android Studio, ứng dụng Google trên thiết bị kiểm thử và Google Play Console.
  • Bạn phải thiết lập Trợ lý trên thiết bị kiểm thử và kiểm tra Trợ lý bằng cách nhấn và giữ nút Home.

So khớp ý định tích hợp với chức năng của ứng dụng

Xác định chức năng mà người dùng có thể muốn chuyển sang bằng cách nói yêu cầu của họ trong ứng dụng Android của bạn và xem lại tài liệu tham khảo về ý định tích hợp để tìm ý định tích hợp thích hợp cho trường hợp sử dụng của bạn. Các BII mô hình hoá truy vấn của người dùng cho các tác vụ mà họ muốn thực hiện trong ứng dụng. Vì vậy, hãy tìm BII phù hợp với chức năng chính và luồng người dùng trong ứng dụng của bạn.

Có những BII phổ biến mà hầu hết mọi ứng dụng Android đều có thể sử dụng, chẳng hạn như mở rộng tìm kiếm trong ứng dụng gốc cho Trợ lý bằng BII actions.intent.GET_THING, hoặc cho phép người dùng khởi chạy các tính năng cụ thể bằng giọng nói qua việc triển khai BII actions.intent.OPEN_APP_FEATURE.

Ngoài ra còn có một số BII cho phép những trường hợp sử dụng theo ngành dọc hoặc theo danh mục cụ thể. Ví dụ: ứng dụng đặt đồ ăn có thể sử dụng BII actions.intent.ORDER_MENU_ITEM.

Để đảm bảo người dùng có trải nghiệm tuyệt vời và tránh bị phê duyệt chậm trễ, hãy đảm bảo từng BII bạn triển khai đều phù hợp với chức năng trong ứng dụng của bạn.

Hành động trong ứng dụng hoạt động bằng cách bắt đầu ý định Android từ ứng dụng Trợ lý để đưa người dùng đến thẳng nội dung cụ thể trong ứng dụng của bạn. Bạn có thể xác định các ý định để khởi chạy hoạt động một cách tường minh bằng cách chỉ định các trường targetClasstargetPackage. Nếu ứng dụng của bạn đã triển khai các URL liên kết sâu trong Android, thì bạn có thể định cấu hình ý định sử dụng đường liên kết sâu để thực hiện nhiệm vụ. Để biết thêm thông tin, vui lòng xem phần Kiểm thử đường liên kết sâu đến hoạt động của bạn.

Cung cấp thông tin về phương thức thực hiện cho ý định tích hợp

Hầu hết việc tạo Hành động trong ứng dụng đều khai báo một chức năng trong tệp tài nguyên shortcuts.xml của ứng dụng Android, tại đây bạn sẽ chỉ định BII đã chọn và tiến hành thực hiện ý định tương ứng. BII mô phỏng truy vấn của người dùng cho một tác vụ, còn quá trình thực hiện ý định sẽ cung cấp cho Trợ lý thông tin về cách thực hiện tác vụ đó.

Trong tệp shortcuts.xml, BII được biểu thị dưới dạng phần tử <capability> và mỗi phương thức thực hiện được biểu thị dưới dạng phần tử <intent>:

<shortcuts>
    <capability android:name="actions.intent.ORDER_MENU_ITEM">
        <intent
            android:action="android.intent.action.VIEW"
            android:targetPackage="com.example.app"
            android:targetClass="com.example.app.browse">
            <parameter
                android:name="menuItem.name"
                android:key="query">
            </parameter>
        </intent>
    </capability>

Đối với hầu hết các BII, bạn trích xuất tham số ý định từ truy vấn của người dùng dựa trên các thực thể schema.org. Sau đó, ứng dụng của bạn sẽ sử dụng các BII này để hướng người dùng đến chức năng mong muốn. Ví dụ: mã ở trên ánh xạ tham số BII menuItem.name với tham số intent Android query.

Nếu đang thực hiện hành động bằng đường liên kết sâu, bạn cần dùng trường urlTemplate để xác định URL liên kết sâu mà Trợ lý tạo ra:

<shortcuts>
    <capability android:name="actions.intent.ORDER_MENU_ITEM">
        <intent android:action="android.intent.action.VIEW">
            <url-template android:value="myfoodapp://browse{?query}" />
            <parameter android:name="menuItem.name"
                android:key="query"
                android:mimeType="text/*">
            </parameter>
        </intent>
    </capability>
</shortcuts>

Để biết thông tin quan trọng về cách thêm Hành động trong ứng dụng vào tệp shortcuts.xml, vui lòng tham khảo phần Tạo shortcuts.xml. Trang đó cũng mô tả cách chỉ định các giá trị tham số mà ứng dụng của bạn dự kiến.

Triển khai ý định tích hợp GET_THING

Nếu ứng dụng của bạn chứa chức năng tìm kiếm, bạn bắt buộc phải triển khai BII actions.intent.GET_THING cho chức năng đó. Sau đó, Trợ lý có thể chuyển tiếp người dùng đến chức năng tìm kiếm của ứng dụng cho kết quả trong ứng dụng khi họ thực hiện các truy vấn như "OK Google, hãy tìm ExampleThing trên ExampleApp.".

Trong tệp shortcuts.xml, hãy triển khai <capability> cho BII actions.intent.GET_THING như khi bạn triển khai mọi BII khác. Bạn có thể sử dụng nhiều phương thức thực hiện cho GET_THING miễn là bạn cung cấp ít nhất một phương thức thực hiện lệnh chuyển truy vấn của người dùng đến chức năng tìm kiếm của ứng dụng.

Dưới đây là ví dụ về cách thêm BII actions.intent.GET_THING trong shortcuts.xml:

  <capability android:name="actions.intent.GET_THING">
    <intent
      android:targetPackage="com.example.myapp"
      android:targetClass="com.example.myapp.MySearchActivity">
      <parameter android:name="thing.name" android:key="query" />
    </intent>
  </capability>

Trong Activity tìm kiếm của bạn, hãy trích xuất cụm từ tìm kiếm từ dữ liệu bổ sung của intent rồi truyền cụm từ tìm kiếm đó đến chức năng tìm kiếm của ứng dụng. Trong đoạn mã trên, cụm từ tìm kiếm (được truyền dưới dạng khoá query) ánh xạ tới tham số BII "thing.name". Sau đó, thực hiện việc tìm kiếm với các truy vấn và hiển thị kết quả trong giao diện người dùng.

Không bắt buộc: Đẩy lối tắt cho Hành động trong ứng dụng đến Trợ lý

Sau khi bạn xác định chức năng cho hành động của mình, người dùng có thể dễ dàng khởi chạy hành động của bạn bằng cách nói những câu như "OK Google, hãy đặt pizza trên ExampleApp." Trợ lý có thể đề xuất lối tắt Android đối với các hành động của bạn cho người dùng vào thời điểm thích hợp, giúp họ khám phá và phát lại các hành động của bạn. Trợ lý có thể đề xuất cả lối tắt động và tĩnh.

Để đẩy các lối tắt động đến Trợ lý, vui lòng sử dụng thư viện Tích hợp lối tắt của Google (Google Shortcuts Integration). Thư viện Jetpack này cho phép Trợ lý nhận lối tắt của bạn và đề xuất cho người dùng vào thời điểm thích hợp.

Để biết thêm thông tin, vui lòng xem phần Đẩy lối tắt động tới Trợ lý.

Xem trước Hành động trong ứng dụng

Trong quá trình phát triển và kiểm thử, vui lòng sử dụng Trình bổ trợ Trợ lý Google dành cho Android Studio để kiểm thử xem Hành động trong ứng dụng có hoạt động với ứng dụng của bạn hay không. Trình bổ trợ này sẽ tạo bản xem trước Hành động trong ứng dụng trong Trợ lý (cho Tài khoản Google của bạn). Với công cụ kiểm thử, bạn có thể kiểm thử các phương thức thực hiện trên thiết bị thử nghiệm thực hoặc trình mô phỏng bằng cách cung cấp BII với tham số đầu vào mà bạn muốn nhận được từ người dùng.

Khi xem trước Hành động trong ứng dụng, bạn có thể kích hoạt các truy vấn bằng giọng nói trên thiết bị đó. Chức năng này chỉ áp dụng đối với những truy vấn được liệt kê trong tệp tham chiếu BII cho Hành động trong ứng dụng. Chỉ sử dụng chức năng kích hoạt bằng giọng nói cho mục đích minh hoạ thay vì để kiểm thử thông thường.

Kiểm thử ứng dụng ở chế độ nháp bằng cách dùng công cụ cho nhà phát triển dành cho Google Play Console trước khi gửi ứng dụng đi xem xét. Để biết thêm thông tin về cách sử dụng Google Play Console khi triển khai bản nháp của ứng dụng, vui lòng xem phần Chuẩn bị và ra mắt bản phát hành.

Tạo một bản phát hành kiểm thử

Khi đã sẵn sàng kiểm thử Hành động trong ứng dụng với những người kiểm thử bổ sung, hãy tạo bản phát hành thử nghiệm nội bộ hoặc khép kín cho ứng dụng của bạn. Theo mặc định, người kiểm thử bản phát hành thử nghiệm nội bộ và bản phát hành thử nghiệm khép kín của bạn có thể truy cập vào các Hành động trong ứng dụng đã được xem xét và phê duyệt.

Để cấp quyền truy cập kiểm thử vào tất cả Hành động trong ứng dụng, bao gồm cả các hành động không được phê duyệt, hãy hướng dẫn người kiểm thử tham gia nhóm Chương trình phát triển hành động trong ứng dụng trên Google Groups. Các thành viên của nhóm này có quyền truy cập vào tất cả Hành động trong ứng dụng trong bản phát hành thử nghiệm nội bộ và khép kín mà không phải tạo bản xem trước bằng Công cụ kiểm thử Hành động trong ứng dụng. Sau khi tham gia nhóm, có thể mất tới 3 giờ thì họ mới có quyền truy cập.

Yêu cầu xem xét và triển khai Hành động trong ứng dụng

Người dùng của các ứng dụng mà bạn đã xuất bản hoặc ra mắt bản phát hành thử nghiệm công khai sẽ không thực hiện được Hành động trong ứng dụng cho đến khi hành động đó được xem xét và phê duyệt. Bài đánh giá Hành động trong ứng dụng không ảnh hưởng đến trạng thái xem xét và triển khai ứng dụng Android của bạn trên Google Play. Ngay cả khi ứng dụng bạn gửi được phê duyệt và xuất bản lên Cửa hàng Play, shortcuts.xml của bạn có thể phải được Google xem xét. Người dùng cuối của bạn sẽ không dùng đợc Hành động trong ứng dụng đó cho đến khi quá trình xem xét đó được chấp thuận.

Khi bạn triển khai ứng dụng, Hành động trong ứng dụng sẽ vẫn được kích hoạt. Tuy nhiên, các phiên bản triển khai lại phải được Google xem xét. Nếu phiên bản mới không hoạt động đúng cách hoặc chứa các lỗi vi phạm chính sách, Google có quyền huỷ kích hoạt tính năng Hành động trong ứng dụng cho ứng dụng của bạn.

Để gửi Hành động trong ứng dụng đi xem xét, hãy làm như sau:

  1. Chấp nhận Điều khoản dịch vụ của nền tảng Actions on Google trên Google Play Console (Cài đặt nâng cao > Actions on Google):

    Điều khoản dịch vụ của nền tảng Actions on Google trên Google Play Console.

  2. Tải ứng dụng của bạn (chứa shortcuts.xml) lên Google Play Console như bình thường để xuất bản.

  3. Sau khi bạn tải ứng dụng lên Play Console, Google sẽ liên hệ với bạn theo địa chỉ email trong tài khoản Play Console để cung cấp thêm thông tin về trạng thái xem xét Hành động trong ứng dụng của bạn. Bạn cũng có thể liên hệ với Nhóm hỗ trợ nhà phát triển của Google nếu có thắc mắc liên quan đến trạng thái xem xét Hành động trong ứng dụng. Trong biểu mẫu liên hệ, hãy cung cấp Mã gói ứng dụng rồi chọn App Action review (Xem xét Hành động trong ứng dụng) ở hộp chọn How can we help you? (Chúng tôi có thể giúp gì cho bạn?).

Để sử dụng đường liên kết sâu nhằm khởi chạy một Activity bằng Hành động trong ứng dụng, Activity đó phải được thiết lập bằng các URL liên kết sâu và có bộ lọc ý định tương ứng trong tệp kê khai ứng dụng Android.

Để kiểm thử xem các hoạt động của bạn có thể truy cập được và có thể được kích hoạt bằng Hành động trong ứng dụng qua các liên kết sâu hay không, hãy chạy lệnh adb sau:

$ adb shell am start -a android.intent.action.VIEW -d "AppLinksURL"

Ví dụ:

$ adb shell am start -a android.intent.action.VIEW -d "https://www.example.com/deeplink"

Nếu hoạt động của bạn không khởi chạy chính xác bằng lệnh adb, hãy kiểm tra các mục sau:

  • Trong tệp kê khai ứng dụng của bạn, hoạt động có android:exported=true để có thể khởi chạy hoạt động đó bằng cách sử dụng ý định từ Trợ lý Google.
  • Nếu bạn sử dụng URL liên kết ứng dụng, hãy làm theo từng bước trong bài viết Xử lý đường liên kết trong ứng dụng Android.

Chính sách về Hành động trong ứng dụng

Hành động trong ứng dụng phải tuân thủ các chính sách cụ thể để giúp đảm bảo rằng người dùng kích hoạt các hành động đó sẽ nhận được trải nghiệm như mong đợi. Hãy tham khảo các chính sách này trước khi gửi ứng dụng của bạn để cung cấp trải nghiệm tốt nhất cho người dùng và tránh phải chờ đợi hoặc bị từ chối xem xét trên Cửa hàng Play.

  • Chuyển người dùng đến nội dung mà họ mong đợi

    Ý định tích hợp (BII) và/hoặc tham số của Hành động trong ứng dụng chỉ được phép hướng người dùng đến hành động có liên quan và đúng như dự định của người dùng. Chẳng hạn như nội dung trong ứng dụng, nội dung trang web hoặc thông tin được cho thấy dưới dạng lát cắt hoặc tiện ích, miễn là mang lại trải nghiệm đúng như người dùng mong muốn.

    Ví dụ: việc triển khai BII ORDER_MENU_ITEM giúp người dùng có thể khởi tạo đơn đặt hàng cho món trong thực đơn hoặc loại món ăn được chỉ định. Ngoại lệ duy nhất đối với chính sách này là khi BII OPEN_APP_FEATURE hướng người dùng đến màn hình chính của ứng dụng.

  • Chuyển người dùng đến nội dung có liên quan trên web

    Nếu người dùng được chuyển hướng đến nội dung trên trang web, thì trang web đó phải có liên quan đến hành động đúng như người dùng mong muốn và thuộc quyền sở hữu của thương hiệu đó.

    Ví dụ: việc chuyển hướng những người dùng kích hoạt BII GET_RESERVATION đến google.com/travel (không thuộc thương hiệu exampledomain.com của ứng dụng của bạn) là hành vi vi phạm. Một ví dụ vi phạm nữa là việc chuyển hướng những người dùng kích hoạt BII GET_CALL_HISTORY của bạn đến exampledomain.com/payment và bắt họ phải mua hàng.

  • Triển khai các BII có liên quan đến Hành động trong ứng dụng

    Các BII được triển khai phải liên quan trực tiếp đến nội dung và chức năng của ứng dụng.

    Ví dụ: nếu ứng dụng của bạn thuộc danh mục Thông tin liên lạc trên Cửa hàng Play thì đừng triển khai ý định tích hợp ORDER_MENU_ITEM (nên dùng cho các ứng dụng trong danh mục Thực phẩm và Đồ uống).

  • Triển khai các ý định tuỳ chỉnh có liên quan

    Các truy vấn được xác định cho ý định tuỳ chỉnh có liên quan đến nội dung và chức năng của ứng dụng. Ví dụ về hành vi có thể vi phạm chính sách này: tạo ý định custom.action.intent.GET_RECIPE với mẫu truy vấn được liên kết "Cho tôi xem công thức làm món burrito" đối với một ứng dụng trong danh mục Vận tải trên Cửa hàng Play.