Mở rộng ứng dụng Android sang Trợ lý Google bằng Hành động trong ứng dụng (Cấp 2)

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 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 tính năng cho phép 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 các yêu cầu này.

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 cho một ứng dụng thể dục mẫu bằng cách triển khai ý định tích hợp (BII) trong danh mục BII về Sức khoẻ và Thể hình. BII được sắp xếp theo danh mục đại diện cho các 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 BII trong phần "Common" Danh mục BII đại diện cho các tác vụ phổ biến trong ứng dụng mà hầu hết ứng dụng Android nào cũng 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 phải 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 phổ biến 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ý:

Ba màn hình tiến bộ trong đó Trợ lý Google hiển thị các việc cần làm đang diễn ra trong một ứng dụng.

Hình 1. Ba màn hình tiến bộ trong đó Trợ lý Google hiển thị các việc cần làm đang diễn ra 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 phổ biến để mở rộng Trợ lý đến hầu hết ứng dụng Android. Bạn cũng sẽ tìm hiểu cách kiểm thử các 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 khi cài đặt git.
  • Bản phát hành ổn định mới nhất của Android Studio.
  • 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ử hành động của bạn.
  • Bạn phải đăng nhập vào Android Studio, đồng thời phả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 tế hoặc ảo) để kiểm thử các hành động của mình. Nếu bạn 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ộ của bạn. 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 tính năng này 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, Trợ lý sẽ tìm Hành động trong ứng dụng đã đăng ký cho ứng dụng của bạn từ tệp shortcuts.xml. Tệp này chứa các chức năng của ứng dụng, giúp liên kết một ý định tích hợp sẵn hoặc đối tượng có ý định tuỳ chỉnh của Trợ lý với một ý định hoặc đường liên kết sâu trên Android.

Khi người dùng nói một truy vấn với Trợ lý, Trợ lý sẽ phân tích cú pháp nội dung đầu vào của người dùng và so khớp nội dung đó với một ý định của 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 bạn hỗ trợ những chức năng nào thông qua tệp shortcuts.xml trong Ứng dụng Android. Với kiểu so khớp ý định, khả năng với BII đó sẽ chứa 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, phương thức thực hiện là một ý định trên Android để khởi chạy một hoạt động trong ứng dụng của bạn.

Sơ đồ dưới đây minh hoạ quy trình này của Trợ lý:

Một quy trình mô tả cách Trợ lý Google xử lý\ntruy vấn bằng giọng nói của người dùng.Hình 2. Một quy trình mô tả cách Trợ lý Google xử lý một yêu cầu bằng giọng nói.

Tệp dự án shortcuts.xml chứa các thông tin sau cho mỗi Hành động trong ứng dụng:

  • Đối tượng có ý định tích hợp hoặc đối tượng có ý định tuỳ chỉnh mà Hành động trong ứng dụng sử dụng
  • Hoạt động Android hoặc đường liên kết sâu nào sẽ được cung cấp cho người dùng
  • 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 trên 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 mong muốn. Kết quả là một trải nghiệm người dùng, trong đó 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 về danh sách việc cần làm dành 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 công 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 bạn 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:

  1. 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).
  2. Tìm và chọn thư mục mà 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 và tránh việc "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 thành một giá trị độc đáo của riêng bạn.

Kiểm thử ứng dụng trên thiết bị

Trước khi thực hiện thêm thay đổi nào đối với ứng dụng, bạn nên nắm được những việc mà ứng dụng mẫu có thể làm. Để chạy ứng dụng trên trình mô phỏng, hãy làm theo các bước sau:

  1. Trong Android Studio, chọn Run (Chạy) > Chạy ứng dụng hoặc nhấp vào biểu tượng Chạy trên thanh công cụ.
  2. Trong hộp thoại Select Deployment Target (Chọn đối tượng 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 (API cấp 30) trở lên, mặc dù Hành động có thể chạy trên các thiết bị từ Android 5 (API cấp 21).
  3. Nhấn và giữ nút Màn hình chính để thiết lập Trợ lý và xác minh rằng Trợ lý đang hoạt động. Bạn sẽ cần đăng nhập vào Trợ lý trên thiết bị nếu chưa đăng nhập.

Để biết thêm thông tin về thiết bị Android ảo, hãy xem nội dung Tạo và quản lý thiết bị ảo.

Ảnh động minh hoạ ứng dụng mẫu của danh sách việc cần làm

Hình 3. Ảnh động minh hoạ ứng dụng mẫu của Danh sách việc cần làm.

Khám phá nhanh ứng dụng để biết những tính năng của ứng dụng. Việc nhấn vào biểu tượng Dấu cộng sẽ tạo một mục việc cần làm mới, và các mục trong 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 của mình trên một thiết bị kiểm thử. Nếu bạn chưa có công cụ kiểm tra này, hãy cài đặt bằng cách làm theo các bước sau:

  1. Chuyển đến Tệp > Cài đặt (Android Studio > Lựa chọn ưu tiên trên MacOS).
  2. Trong mục Trình bổ trợ, hãy chuyển đến mục Marketplace rồi tìm "Trợ lý Google". Bạn cũng có thể tự tải xuống và cài đặt công cụ thử nghiệm này.
  3. Cài đặt công cụ rồi khởi động lại Android Studio.

4. Thêm chức năng BII Get Thing

BII actions.intent.GET_THING mở rộng chức năng tìm kiếm trong ứng dụng sang cả Trợ lý Google. Ở 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 khả năng Nhận thực thể

Trong một Hành động trong ứng dụng liên quan đến tìm kiếm, Trợ lý sẽ trích xuất các cụm từ tìm kiếm từ cụm từ tìm kiếm của người dùng vào tham số BII thing.name, sau đó chuyể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, với 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:

  1. Khai báo rằng ứng dụng phản hồi BII GET_THING.
  2. Chỉ định cách xây dựng một ý định trên Android để chạy ứng dụng để phản hồi BII đó.
    • Hoạt động được xác định bằng targetPackagetargetClass.
    • Tham số BII thing.name được liên kết với Ý định Khác có tên là q.

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 được 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 tra tính năng tìm kiếm trong ứng dụng cho ứng dụng của bạn từ Trợ lý, hãy làm theo các bước sau:

  1. Hãy đảm bảo rằng thiết bị Android của bạn đã kết nối.
  2. Chuyển đến Công cụ > Trợ lý Google > Công cụ kiểm tra Hành động trong ứng dụng.
  3. 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ụngngôn ngữ. Nếu được yêu cầu, hãy xem lại và chấp nhận các chính sách cũng như điều khoản dịch vụ về Hành động trong ứng dụng.
  4. Ở bước đầu tiên khi công cụ yêu cầu bạn chọn và định cấu hình BII, hãy chọn actions.intent.GET_THING. Thay đổi giá trị name từ running shoes thành milk.
  5. Nhấp vào Run App Action (Chạy Hành động trong ứng dụng).

Trong kiểm thử này, BII GET_THING sử dụng thuộc tính name để tìm kiếm các nhiệm vụ 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, tìm hỗn hợp làm bánh trong Danh sách tác vụ" hoặc các cụm từ tìm kiếm khác trên thiết bị kiểm thử.

5. Thêm chức năng BII của tính năng Mở ứng dụng

Ở bước này, bạn sẽ triển khai BII của tính năng Mở ứng dụng, cho phép người dùng xem các công việc đang thực hiện và đã hoàn thành của họ thông qua Trợ lý. Để thực hiện việc này, hãy hoàn thiện tính năng trong shortcuts.xml, trong đó chứa thông tin về cách kích hoạt chức năng, cách truyền tham số và ý định Android sẽ gọi. Đối với lớp học lập trình này, bạn sẽ sử dụng BII OPEN_APP_FEATURE. 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 chức năng tính năng Mở ứng dụng

Thêm một chức năng thứ hai cho tính năng Open app (Mở ứng dụng) trong shortcuts.xml bên dưới phần tử Get Thing Assistant (Khả năng thực hiện):

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>

Chức năng này liên kết BII của tính năng Ứng dụng mở và ý định trên Android với nhau. Vì vậy, khi tính năng Mở ứng dụng được kích hoạt, ý định trên Android sẽ kích hoạt.

Trước khi kích hoạt ý định trên Android, các tham số được hỗ trợ sẽ được lấy từ hoạt động đầ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ợ hai loại tính năng: Nhiệm vụ đang hoạt động và Nhiệm vụ đã hoàn thành. Những tính năng này cho phép người dùng mở ứng dụng ở chế độ xem danh sách công việc đã được lọc. Bạn cần sử dụng khoảng không quảng cáo nội tuyến để hỗ trợ những tính năng này.

Xử lý tham số ý định bằng cách sử dụ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 đại loại như "Ok Google, đặt một chiếc bánh pizza trên ExampleApp", Trợ lý sẽ trích xuất từ "pizza" vào một tham số ý định food.item schema.org rồi truyền tham số đó đến thao tác của bạn để xử lý.

BII của tính năng ứng dụng mở hỗ trợ một tham số là 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 cần 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 nhóm tên tính năng được hỗ trợ của ứng dụng để 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 mã sau ở phía trên chức năng của 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 khoảng không quảng cáo nội tuyến, được biểu thị dưới dạng phần tử shortcut với các liên kết chức năng và tham số. Bạn có thể sử dụng lối tắt làm khoảng không quảng cáo cho tham số BII. Trợ lý Google sẽ so khớp truy vấn của người dùng với các giá trị trong liên kết tham số của Lối tắt. Đối với giá trị tham số trùng 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 theo một yêu cầu, Trợ lý sẽ so khớp giá trị tham số tính năng với thuộc tính giá trị của 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 đại loại như "Ok Google, cho tôi xem các việc cần làm đã hoàn thành trong ExampleApp", thì Trợ lý sẽ so khớp giá trị tham số của ý định tính năng "việc cần làm đã hoàn thành" với lối tắt khoảng không quảng cáo tương ứng để chuyển giá trị đó cho tính năng OPEN_APP_FEATURE. Sau đó, Trợ lý sẽ kích hoạt ý định trên Android.

Kiểm thử Hành động trong ứng dụng

Trong quá trình phát triển và thử nghiệm, bạn sử dụng trình bổ trợ Trợ lý Google để xem trước Hành động trong ứng dụng với Trợ lý trên 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ý các cách mà người dùng có thể yêu cầu Trợ lý chạy 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:

  1. Kết nối thiết bị kiểm thử Android thực hoặc khởi động trình mô phỏng Android
  2. Nếu công cụ kiểm tra không xuất hiện, hãy mở công cụ đó bằng cách chuyển đến phần Tools > Trợ lý Google > Công cụ kiểm tra Hành động trong ứng dụng.
  3. Nhấp vào nút Cập nhật để làm mới bản xem trước.
  4. Ở bước đầu tiên khi công cụ yêu cầu bạn chọn và định cấu hình BII, hãy chọn actions.intent.OPEN_APP_FEATURE.
  5. Trong hộp feature (tính năng), hãy cập nhật giá trị History mặc định bằng Completed tasks.
  6. Nhấp vào Run App Action (Chạy Hành động trong ứ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, hiện những việc cần làm đã hoàn thành 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 thông qua 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 giúp người dùng tìm hiểu sâu về các tính năng cụ thể của ứng dụng thông qua 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.

Các bước tiếp theo

Từ đây, bạn có thể thử tinh chỉnh thêm ứng dụng Danh sách việc cần làm của mình. Để tham chiếu dự án đã hoàn tất, hãy xem kho lưu trữ –nhánh chính trên GitHub.

Dưới đây là một số đề xuất để bạn tìm hiểu thêm về cách mở rộng ứng dụng này bằng Hành động trong ứng dụng:

Để tiếp tục hành trình Actions on Google, hãy khám phá các tài nguyên sau:

Hãy theo dõi chúng tôi trên Twitter @ActionsOnGoogle để luôn cập nhật những thông báo mới nhất của chúng tôi và đăng bài lên #AoGDevs để chia sẻ những công trình mà bạn đã xây dựng!

Khảo sát nhận phản hồi

Cuối cùng, vui lòng điền vào bản khảo sát này để đưa ra ý kiến phản hồi về trải nghiệm của bạn khi tham gia lớp học lập trình này.