Mở rộng ứng dụng Android sang Trợ lý Google bằng Hành động trong ứng dụng

1. Tổng quan

Với Hành động trong ứng dụng, bạn có thể dùng Trợ lý Google để chuyển thẳng đến các tính năng của ứng dụng và hoàn thành công việc bằng giọng nói. Là nhà phát triển Android, bạn triển khai các phần tử chức năng để thêm Hành động trong ứng dụng. Các chức năng này cho Trợ lý biết tính năng nào của ứng dụng hỗ trợ yêu cầu bằng giọng nói của người dùng và cách bạn muốn thực hiện các yêu cầu đó.

Lớp học lập trình này bao gồm các khái niệm dành cho người mới bắt đầu để 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à Ý định trên Android để tuân thủ lớp học lập trình này. Nếu mới sử dụng Android, bạn nên bắt đầu bằng một trong các lớp học lập trình dành cho Kiến thức cơ bản dành cho nhà phát triể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 ý định tích hợp Hành động trong ứng dụng (BII) vào một ứng dụng Android mẫu về thể dục. Nhờ đó, người dùng có thể dùng giọng nói để bắt đầu và dừng đồng hồ hẹn giờ tập thể dục.

Kiến thức bạn sẽ học được

Bạn sẽ tìm hiểu cách sử dụng BII trong danh mục Sức khoẻ và thể hình để mở rộng Trợ lý sang một ứng dụng Android. Bạn cũng sẽ tìm hiểu cách sử dụng trình bổ trợ Trợ lý Google cho Android Studio để kiểm thử BII.

Điều kiện tiên quyết

Trước khi tiếp tục, hãy đảm bảo bạn có các công cụ sau trong môi trường của mình:

  • Một thiết bị đầu cuối để chạy các lệnh shell khi cài đặt git.
  • Phiên bản mới nhất của Android Studio.
  • Một Tài khoản Google có quyền truy cập vào [Google Play Console][].
  • Một thiết bị Android thực hoặc ảo có quyền truy cập Internet vào Cửa hàng Play.

Trước khi tiếp tục, đảm bảo bạn đã đăng nhập vào Android Studio và ứng dụng Google trên thiết bị thử nghiệm.

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. Quảng cáo này hoạt động như thế nào?

Khi người dùng yêu cầu Trợ lý thực hiện một việc cần làm qua ứng dụng của bạn, Trợ lý sẽ so khớp truy vấn của họ với một capability của Hành động trong ứng dụng được xác định trong tài nguyên XML shortcuts.xml của ứng dụng.

Sơ đồ quy trình minh hoạ cách Trợ lý Google xử lý một truy vấn bằng giọng nói qua Hành động trong ứng dụng

Hình 1. Sơ đồ quy trình minh hoạ cách Trợ lý xử lý một truy vấn bằng giọng nói qua Hành động trong ứng dụng.

Mỗi phần tử chức năng xác định:

  • Ý định: Ý định bằng giọng nói của Hành động trong ứng dụng sẽ kích hoạt chức năng đó.
  • Một hoặc nhiều phương thức thực hiện: Ý định hoặc đường liên kết sâu trên Android mà Trợ lý tạo ra để chạy ứng dụng và thực hiện yêu cầu bằng giọng nói của người dùng. Định nghĩa về việc thực hiện đơn hàng chỉ định những tham số nào được dự kiến từ truy vấn của người dùng và cách những tham số đó được mã hoá thành hướng dẫn khởi chạy.

Ý định

Trong thuật ngữ Hiểu ngôn ngữ tự nhiên (NLU), ý định là một nhóm các cụm từ của người dùng có ý nghĩa tương tự nhau. Google đã tạo hàng chục tính năng "cài sẵn" ý định (BII) bao gồm nhiều loại yêu cầu có trong Hành động trong ứng dụng. Ví dụ: Trợ lý được huấn luyện để liên kết các cụm từ "Đặt pizza" hoặc "cho tôi xem thực đơn món tráng miệng" với BII ORDER_MENU_ITEM. Với Hành động trong ứng dụng, bạn có thể tận dụng các BII này để nhanh chóng mở rộng các yêu cầu thoại phổ biến sang chức năng của ứng dụng.

Thực hiện đơn hàng

Khi một yêu cầu của người dùng kích hoạt một Hành động trong ứng dụng trong shortcuts.xml, thì hoạt động của bạn trên Android phải phát hiện và xử lý ý định hoặc đường liên kết sâu đến trong Android, đồng thời cung cấp cho người dùng chức năng họ mong muốn. Nhờ đó, Trợ lý sẽ gọi ứng dụng của bạn để đáp lại truy vấn của người dùng bằng giọng nói.

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 Thể dục dành cho Android. Ứng dụng này cho phép người dùng bắt đầu và dừng đồng hồ bấm giờ tập thể dục, cũng như xem số liệu thống kê về thói quen tập thể dục của họ.

Tải tệp cơ sở xuống

Để lấy các tệp cơ sở cho lớp học lập trình này, hãy chạy lệnh sau để sao chép kho lưu trữ GitHub:

git clone --branch codelab-start https://github.com/actions-on-google/appactions-fitness-kotlin.git

Sau khi bạn sao chép kho lưu trữ, hãy 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ữ.

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.

Dùng thử ứng dụng này trên thiết bị của bạn

Trước khi thực hiện các thay đổi khác đối với mã của ứng dụng, bạn nên nắm được những việc mà ứng dụng mẫu có thể làm. Quá trình kiểm thử ứng dụng trong môi trường nhà phát triển bao gồm các bước sau:

  1. Mở thiết bị kiểm thử Android thực hoặc ảo.
  2. Đang xác minh để đảm bảo rằng ứng dụng Trợ lý đang hoạt động.
  3. Sử dụng Android Studio để triển khai và chạy ứng dụng mẫu trên thiết bị.

Hãy làm theo các bước sau để kiểm thử ứng dụng của bạn:

  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ạyacabcb8f8634af20.png trên thanh công cụ.
  2. Nếu bạn dùng một thiết bị ảo, 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ị ảo rồi nhấp vào OK. Phiên bản hệ điều hành được đề xuất là Android 8 (API cấp 26) trở lên, mặc dù các Hành động có thể chạy trên các thiết bị từ Android 5 (API cấp 21).
  3. Sau khi mở ứng dụng, hãy 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ý vẫn hoạt động. Đăng nhập vào Trợ lý nếu bạn chưa đăng nhập.
  4. Mở lại ứng dụng.

Điện thoại có ứng dụng Fit Actions đang mở, hiển thị số liệu thống kê về bài tập thể dục.

Hình 2. Ứng dụng mẫu Fit Actions hiển thị số liệu thống kê về bài tập thể dục.

Khám phá nhanh ứng dụng để biết những tính năng của ứng dụng. Thao tác nhấn vào biểu tượng Chạy sẽ khởi động một bộ tính giờ tập thể dục, sau đó nhấn vào biểu tượng X sẽ dừng bộ tính giờ đó. Sau đây là những tác vụ mà bạn sẽ bật để điều khiển bằng giọng nói thông qua Hành động trong ứng dụng.

Cài đặt trình bổ trợ Trợ lý Google

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ử. Hãy làm theo các bước sau để thêm ứng dụng này vào Android Studio:

  1. Chuyển đến mục 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 Thị trường rồi tìm "Trợ lý Google".
  3. Cài đặt công cụ rồi khởi động lại Android Studio.

4. Thêm chức năng BII Bắt đầu bài tập thể dục

BII actions.intent.START_EXERCISE cho phép người dùng mở ứng dụng và bắt đầu bài tập thể dục bằng giọng nói. Ở bước này, bạn triển khai một chức năng cho BII này. Chức năng này cho phép người dùng yêu cầu Trợ lý bắt đầu bài tập chạy bộ trong ứng dụng Thể dục.

Xác định chức năng

Trợ lý sử dụng các phần tử capability được xác định trong shortcuts.xml để xử lý giọng nói của lệnh thoại theo các bước sau:

  1. Trợ lý sẽ so khớp truy vấn bằng giọng nói của người dùng với một BII được xác định trong các chức năng của ứng dụng.
  2. Trợ lý trích xuất các giá trị từ truy vấn thành các tham số BII. Mỗi tham số được thêm vào một Bundle được đính kèm với một Intent đã tạo.
  3. Trợ lý sử dụng Intent để chạy ứng dụng, cho phép ứng dụng truy cập vào các tham số đi kèm.

BII START_EXERCISE hỗ trợ tham số BII exercise.name. Bạn sẽ sử dụng tham số này để cho phép người dùng chỉ định loại bài tập thể dục cần theo dõi trong ứng dụng.

Thêm BII START_EXERCISE vào ứng dụng của bạn bằng cách thêm capability này vào shortcuts.xml, nằm trong thư mục dự án mẫu app/src/main/res/xml:

<!-- shortcuts.xml -->

<capability android:name="actions.intent.START_EXERCISE">
  <intent
    android:action="android.intent.action.VIEW"
    android:targetPackage="PUT_YOUR_APPLICATION_ID_HERE"
    android:targetClass="com.devrel.android.fitactions.FitMainActivity">
    <parameter
      android:name="exercise.name"
      android:key="exerciseType"/>
  </intent>
</capability>

Thay thế PUT_YOUR_APPLICATION_ID_HERE bằng applicationId duy nhất mà bạn đã xác định ở bước trước.

XML mẫu trước đó:

  • Khai báo một chức năng cho BII START_EXERCISE.
  • Chỉ định intent Android mà Trợ lý tạo ra để chạy ứng dụng:
    • Thuộc tính targetPackagetargetClass chỉ định hoạt động nhận.
    • Thuộc tính parameter ánh xạ tham số BII exercise.name với exerciseType trong dữ liệu bổ sung Bundle mà hoạt động nhận được.

Xử lý các tham số BII với khoảng không quảng cáo nội tuyến

Tham số BII đạ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 Trợ lý. Ví dụ: khi người dùng nói "Ok Google, hãy bắt đầu chạy trên ExampleApp", Trợ lý sẽ trích xuất từ "chạy" vào tham số BII schema.org exercise.name. Đối với một số BII, bạn có thể hướng dẫn Trợ lý khớp các tham số BII với một bộ giá trị nhận dạng mà ứng dụng của bạn dự kiến.

Bạn thực hiện việc này bằng cách liên kết các phần tử khoảng không quảng cáo nội tuyến với tham số BII. Khoảng không quảng cáo nội tuyến là một tập hợp các giá trị tham số BII được hỗ trợ, chẳng hạn như "chạy", "đi bộ đường dài" và "chạy bộ", cũng như mã lối tắt tương ứng của các giá trị đó, chẳng hạn như EXERCISE_RUN. Liên kết khoảng không quảng cáo này cho phép Trợ lý truyền mã lối tắt để so khớp các tham số (thay vì giá trị truy vấn thô) đến hoạt động thực hiện đơn hàng của bạn.

Một số tham số BII, chẳng hạn như exercise.name, cần có khoảng không quảng cáo nội tuyến để hoạt động. Để xử lý tham số này, hãy thêm các phần tử shortcut của khoảng không quảng cáo sau đây vào shortcuts.xml:

<!-- shortcuts.xml -->

<shortcuts>
  <shortcut
    android:shortcutId="running"
    android:shortcutShortLabel="@string/activity_running">
    <capability-binding android:key="actions.intent.START_EXERCISE">
      <parameter-binding
        android:key="exercise.name"
        android:value="@array/runningSynonyms"/>
    </capability-binding>
  </shortcut>

  <shortcut
    android:shortcutId="walking"
    android:shortcutShortLabel="@string/activity_walking">
    <capability-binding android:key="actions.intent.START_EXERCISE">
      <parameter-binding
        android:key="exercise.name"
        android:value="@array/walkingSynonyms"/>
    </capability-binding>
  </shortcut>

  <shortcut
    android:shortcutId="cycling"
    android:shortcutShortLabel="@string/activity_cycling">
    <capability-binding android:key="actions.intent.START_EXERCISE">
      <parameter-binding
        android:key="exercise.name"
        android:value="@array/cyclingSynonyms"/>
    </capability-binding>
  </shortcut>

  <capability> ... </capability>
</shortcuts>

Trong đoạn mã trước, bạn đã xác định 3 lối tắt đại diện cho một khoảng không quảng cáo nội tuyến cho các loại bài tập thể dục được hỗ trợ của ứng dụng: chạy, đi bộ và đạp xe. Mỗi phím tắt được liên kết với chức năng theo những cách sau:

  • Thuộc tính android:key của mỗi phần tử capability-binding tham chiếu đến cùng một BII START_EXCERCISE được xác định cho chức năng đó.
  • Phần tử parameter-binding của mỗi phím tắt chuyển đến tham số BII exercise.name.

Thêm từ đồng nghĩa khoảng không quảng cáo nội tuyến

Thuộc tính android:value của phần tử parameter-binding trong các lối tắt của khoảng không quảng cáo trước đó tham chiếu đến tài nguyên mảng gồm các từ đồng nghĩa cho mỗi phần tử khoảng không quảng cáo. Các từ đồng nghĩa cho phép các biến thể của một loại phần tử, chẳng hạn như "chạy", "chạy bộ" và "chạy nước rút" tham chiếu đến cùng một shortcutId. Thêm các mục đồng nghĩa sau vào tài nguyên array.xml của dự án:

<!-- array.xml -->
<array name="runningSynonyms">
  <item>Run</item>
  <item>Jog</item>
  <item>Jogging</item>
  <item>Sprint</item>
</array>

<array name="walkingSynonyms">
  <item>Walk</item>
  <item>Hike</item>
  <item>Hiking</item>
</array>

<array name="cyclingSynonyms">
  <item>Biking</item>
  <item>Riding</item>
  <item>Pedaling</item>
</array>

Thực hiện ý định sắp tới trên Android

Ý định trên Android là các đối tượng nhắn tin mà Android sử dụng để yêu cầu một hành động từ một ứng dụng khác. Trợ lý đáp ứng yêu cầu của người dùng các truy vấn bằng giọng nói bằng cách tạo một ý định từ thông tin chi tiết về cấu hình trong chức năng đã kích hoạt. Để thực hiện ý định cho chức năng START_EXERCISE, hãy cập nhật lớp mục tiêu FitMainActivity để xử lý các ý định và tham số BII đến.

Trước tiên, hãy thay thế hàm Intent.handleIntent bằng mã sau:

//FitMainActivity.kt

private fun Intent.handleIntent() {
  when (action) {
    // When the BII is matched, Intent.Action_VIEW will be used
    Intent.ACTION_VIEW -> handleIntent(data)
    // Otherwise start the app as you would normally do.
    else -> showDefaultView()
  }
}

Tiếp theo, hãy thêm một hàm handleIntent mới vào lớp bằng đoạn mã sau:

//FitMainActivity.kt

/**
 * Use extras provided by the intent to handle the different BIIs
 */

private fun handleIntent(data: Uri?) {
  // path is normally used to indicate which view should be displayed
  // i.e https://fit-actions.firebaseapp.com/start?exerciseType="Running" -> path = "start"
  var actionHandled = true

  val startExercise = intent?.extras?.getString(START_EXERCISE)
  // Add stopExercise variable here

  if (startExercise != null){
    val type = FitActivity.Type.find(startExercise)
    val arguments = Bundle().apply {
      putSerializable(FitTrackingFragment.PARAM_TYPE, type)
    }
    updateView(FitTrackingFragment::class.java, arguments)
  } // Add conditional for stopExercise
  else{
   // path is not supported or invalid, start normal flow.
   showDefaultView()

   // Unknown or invalid action
   actionHandled = false
  }
  notifyActionSuccess(actionHandled)
}

Trong hàm Intent.handleIntent trước đó, khi ACTION_VIEW được kích hoạt, dữ liệu ý định của Hành động trong ứng dụng sẽ được truyền đến hàm handleIntent. Các tham số BII đi kèm trong ý định START_EXERCISE được truy cập thông qua intent?.extras?.getString(START_EXERCISE). Phần còn lại của hàm sẽ cập nhật FitTrackingFragment để hiển thị loại hình thể dục startExercise đã chọn.

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

Trong quá trình phát triển Hành động trong ứng dụng, bạn sẽ sử dụng trình bổ trợ Trợ lý Google để xem trước Hành động của mình trên thiết bị thử nghiệm. Bạn cũng có thể sử dụng trình bổ trợ này để điều chỉnh giá trị tham số ý định của một Hành động nhằm kiểm thử cách ứng dụng xử lý các cách mà người dùng có thể dùng để diễn đạt yêu cầu của Trợ lý cho ứng dụng của bạn.

Để kiểm thử Hành động trong ứng dụng bằng trình bổ trợ này, hãy làm theo các bước sau:

  1. Chạy ứng dụng của bạn trong Android Studio bằng cách chọn Run (Chạy) > Chạy ứng dụng hoặc bằng cách nhấp vào biểu tượng Chạy trên thanh công cụ trên cùng.
  2. Chuyển đến Công cụ > Hành động trong ứng dụng > 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. 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. Chọn ý định tích hợp actions.intent.START_EXERCISE.
  5. Trong hộp exercise (bài tập thể dục), hãy để giá trị Running (chạy) mặc định.
  6. Nhấp vào Run App Action (Chạy Hành động trong ứng dụng). Xác minh rằng Trợ lý liên kết sâu đến bộ tính giờ tập thể dục của ứng dụng và bộ tính giờ đó đã bắt đầu một bài tập thể dục theo kiểu đang chạy.

Bạn đã triển khai Hành động trong ứng dụng đầu tiên của mình bằng BII START_EXERCISE. Xin chúc mừng! Tiếp theo, chúng tôi sẽ cho phép người dùng dừng một bài tập chạy trong ứng dụng của bạn.

5. Thêm chức năng BII Ngừng bài tập thể dục

BII actions.intent.STOP_EXERCISE cho phép người dùng dừng một phiên tập thể dục bằng cách hỏi những câu như "Ok Google, dừng chạy tôi trên ExampleApp." Triển khai BII này trong ứng dụng Thể dục bằng cách thêm capability thứ hai vào shortcuts.xml:

<!-- shortcuts.xml -->

<capability android:name="actions.intent.STOP_EXERCISE">
  <intent
    android:action="android.intent.action.VIEW"
    android:targetPackage="PUT_YOUR_APPLICATION_ID_HERE"
    android:targetClass="com.devrel.android.fitactions.FitMainActivity">
    <!-- Eg. name = "Running" -->
    <parameter
        android:name="exercise.name"
        android:key="stopExercise"/>
  </intent>
</capability>

Thay thế PUT_YOUR_APPLICATION_ID_HERE bằng applicationId của riêng bạn.

Xử lý các tham số BII với khoảng không quảng cáo nội tuyến

BII này hỗ trợ cùng một tham số exercise.name như BII START_EXERCISE, cho phép người dùng chỉ định họ muốn kết thúc bài tập thể dục đang hoạt động nào. Để bật tính năng này, hãy thêm bộ phần tử thứ hai gồm các phần tử lối tắt của khoảng không quảng cáo vào shortcuts.xml:

<!-- shortcuts.xml -->

<shortcut
  android:shortcutId="running"
  android:shortcutShortLabel="@string/activity_running">
  <capability-binding android:key="actions.intent.STOP_EXERCISE">
      <parameter-binding
          android:key="exercise.name"
          android:value="@array/runningSynonyms"/>
  </capability-binding>
</shortcut>

<shortcut
  android:shortcutId="walking"
  android:shortcutShortLabel="@string/activity_walking">
  <capability-binding android:key="actions.intent.STOP_EXERCISE">
      <parameter-binding
          android:key="exercise.name"
          android:value="@array/walkingSynonyms"/>
  </capability-binding>
</shortcut>

<shortcut
  android:shortcutId="cycling"
  android:shortcutShortLabel="@string/activity_cycling">
  <capability-binding android:key="actions.intent.STOP_EXERCISE">
      <parameter-binding
          android:key="exercise.name"
          android:value="@array/cyclingSynonyms"/>
  </capability-binding>
</shortcut>

Thực hiện ý định sắp tới trên Android

Cho phép ứng dụng xử lý các ý định sắp tới của Android STOP_EXERCISE bằng cách cập nhật lớp FitMainActivity. Trước tiên, hãy thêm một biến vào hàm handleIntent để lưu giữ dữ liệu ý định STOP_EXERCISE:

// FitMainActivity.kt

private fun handleIntent(data: Uri?) {
  val stopExercise = intent?.extras?.getString(STOP_EXERCISE)
  //...
}

Tiếp theo, hãy cập nhật logic có điều kiện của hàm handleIntent để xử lý ý định STOP_EXERCISE:

// FitMainActivity.kt

private fun handleIntent(data: Uri?) {
  //...
  if (startExercise != null){
    val type = FitActivity.Type.find(startExercise)
    val arguments = Bundle().apply {
      putSerializable(FitTrackingFragment.PARAM_TYPE, type)
    }
    updateView(FitTrackingFragment::class.java, arguments)
  } // Add conditional for stopExercise
  <strong>
  } else if(stopExercise != null){
    // Stop the tracking service if any and return to home screen.
    stopService(Intent(this, FitTrackingService::class.java))
    updateView(FitStatsFragment::class.java)
  }
  </strong>
  //...
}

Trong mã trước, bạn đã cập nhật hàm handleIntent để kiểm tra BII STOP_EXERCISE trong ý định đến trên Android. Nếu tìm thấy, hàm này sẽ dừng bộ tính giờ đang hoạt động và đưa người dùng trở lại màn hình chính.

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

Hãy kiểm thử Hành động trong ứng dụng bằng trình bổ trợ Trợ lý Google bằng cách làm theo các bước sau:

  1. Chạy ứng dụng của bạn trong Android Studio bằng cách chọn Run (Chạy) > Chạy ứng dụng hoặc bằng cách nhấp vào biểu tượng Chạy trên thanh công cụ trên cùng.
  2. Trong ứng dụng, hãy bắt đầu một lượt "chạy" mới tập thể dục.
  3. Mở trình bổ trợ trong Android Studio: chuyển đến phần Tools (Công cụ) > Hành động trong ứng dụng > Trợ lý Google > Công cụ kiểm tra Hành động trong ứng dụng.
  4. Nhấp vào Tạo bản xem trước.
  5. Chọn ý định tích hợp actions.intent.STOP_EXERCISE.
  6. Trong hộp exercise (bài tập thể dục), hãy để giá trị Running (chạy) mặc định.
  7. Nhấp vào Run App Action (Chạy Hành động trong ứng dụng). Xác minh rằng Trợ lý sẽ dừng bài tập thể dục và đưa bạn trở lại màn hình chính.

6. Các bước tiếp theo

Xin chúc mừng!

Giờ đây, bạn đã biết cách dùng giọng nói để bật một ứng dụng Android thông qua các ý định tích hợp sẵn của Trợ lý. 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 sử dụng khoảng không quảng cáo nội tuyến.
  • Cách kiểm thử BII 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 Thể dục của mình. Để tham chiếu dự án đã hoàn tất, hãy xem 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 trên Twitter #appactions để chia sẻ những gì bạn đã xây dựng được!

Bài khảo sát nhận ý kiế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.