Trợ lý Google cho Wear OS

Tính năng trợ lý thoại trên đồng hồ hỗ trợ các tình huống khi di chuyển một cách nhanh chóng và hiệu quả. Hoạt động tương tác bằng giọng nói trên thiết bị đeo có tính linh động, tức là người dùng có thể hướng vào cổ tay của mình và nói mà không nhất thiết phải nhìn vào thiết bị trong khi chờ phản hồi.

Nhờ tính năng Hành động trong ứng dụng Trợ lý, nhà phát triển Android có thể kết nối ứng dụng Wear OS với Trợ lý Google, giúp người dùng sử dụng nhanh các ứng dụng khi ra những lệnh thoại như "Ok Google, bắt đầu hoạt động chạy của tôi trên ExampleApp".

Các điểm hạn chế

Trợ lý trên Wear hỗ trợ các hoạt động tương tác trên nội dung nghe nhìn và theo dõi hoạt động tập thể dục. Để được hướng dẫn về cách tích hợp các ứng dụng nghe nhìn với Trợ lý, hãy xem phần Trợ lý Google và ứng dụng nghe nhìn. Các BII về Sức khoẻ và Thể hình sau đây được hỗ trợ cho các ứng dụng Wear OS:

Cách thức hoạt động

Hành động trong ứng dụng giúp bổ sung chức năng của ứng dụng cho Trợ lý để người dùng có thể truy cập nhanh các tính năng của ứng dụng qua giọng nói. 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ý trên ứng dụng của bạn trong tài nguyên shortcuts.xml của ứng dụng đó.

Hành động trong ứng dụng được mô tả trong shortcuts.xml bằng các phần tử chức năng của Android. Các phần tử chức năng ghép nối các ý định tích hợp (BII). Ý định tích hợp là nội dung mô tả ngữ nghĩa của chức năng ứng dụng, có lệnh thực hiện, chẳng hạn như một mẫu liên kết sâu. Khi bạn tải ứng dụng lên bằng Google Play Console, Google sẽ đăng ký cho các tính năng được khai báo trong shortcuts.xml và người dùng có thể kích hoạt những tính năng đó qua Trợ lý.

Luồng Hành động trong ứng dụng

Biểu đồ trước cho thấy một người dùng tạm dừng bài tập thể dục trong một ứng dụng độc lập. Các bước sau đây sẽ diễn ra:

  1. Người dùng gửi một yêu cầu bằng giọng nói tới Trợ lý đối với ứng dụng cho thiết bị đeo cụ thể.
  2. Trợ lý sẽ so khớp yêu cầu của bạn với một mô hình luyện sẵn (BII) và trích xuất mọi tham số có trong truy vấn mà BII hỗ trợ.
  3. Trong ví dụ này, Trợ lý sẽ so khớp truy vấn đó với BII PAUSE_EXERCISE rồi trích xuất tham số tên bài tập thể dục là "đi bộ đường dài".
  4. Ứng dụng được kích hoạt thông qua định nghĩa về phương thức thực hiện chức năng shortcuts.xml cho BII này.
  5. Ứng dụng sẽ xử lý phương thức thực hiện giúp tạm dừng bài tập thể dục.

Khả năng kết nối

Quá trình phát triển Hành động trong ứng dụng có thể thay đổi tuỳ thuộc vào chức năng của ứng dụng trong hệ sinh thái của thiết bị chạy Android.

  • Chia sẻ Internet: Khi một ứng dụng cho thiết bị đeo cần ứng dụng di động để cung cấp đầy đủ chức năng, các truy vấn của người dùng được gửi đến Trợ lý thông qua đồng hồ sẽ được thực hiện trên thiết bị di động. Logic thực hiện Hành động trong ứng dụng phải được tích hợp vào ứng dụng di động để trường hợp này hoạt động đúng cách.

  • Không chia sẻ Internet: Khi một ứng dụng cho thiết bị đeo không cần ứng dụng di động để cung cấp chức năng, Trợ lý sẽ thực hiện các truy vấn của người dùng trên đồng hồ. Bạn phải tích hợp sẵn các chức năng của Hành động trong ứng dụng vào ứng dụng cho thiết bị đeo để thực hiện những yêu cầu này đúng cách.

Thêm chức năng thoại vào Wear

Tích hợp Hành động trong ứng dụng với ứng dụng Wear OS bằng cách làm theo các bước sau:

  1. So khớp chức năng trong ứng dụng mà bạn muốn bật giọng nói với một BII tương ứng.
  2. Khai báo khả năng hỗ trợ cho lối tắt Android trong tài nguyên AndroidManifest.xml của hoạt động chính.

    <!-- AndroidManifest.xml -->
    <meta-data
        android:name="android.app.shortcuts"
        android:resource="@xml/shortcuts" />
    
  3. Thêm một phần tử <intent-filter> vào AndroidManifest.xml. Việc này khiến Trợ lý có thể dùng các đường liên kết sâu để kết nối với nội dung của ứng dụng.

  4. Tạo shortcuts.xml để cung cấp thông tin chi tiết về phương thức thực hiện cho BII. Bạn sử dụng các phần tử lối tắt capability để khai báo các BII mà ứng dụng của bạn hỗ trợ với Trợ lý. Để biết thêm thông tin, hãy xem bài viết Thêm tính năng.

  5. Trong shortcuts.xml, hãy triển khai một chức năng cho BII mà bạn chọn. Mẫu sau đây minh hoạ một chức năng cho BII START_EXERCISE:

    <?xml version="1.0" encoding="utf-8"?>
    <!-- This is a sample shortcuts.xml -->
    <shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
      <capability android:name="actions.intent.START_EXERCISE">
        <intent
          android:action="android.intent.action.VIEW"
          android:targetPackage="YOUR_UNIQUE_APPLICATION_ID"
          android:targetClass="YOUR_TARGET_CLASS">
          <!-- Eg. name = "Running" -->
          <parameter
            android:name="exercise.name"
            android:key="name"/>
          <!-- Eg. duration = "PT1H" -->
          <parameter
            android:name="exercise.duration"
            android:key="duration"/>
        </intent>
      </capability>
    </shortcuts>
    
  6. Nếu có thể, hãy mở rộng phạm vi hỗ trợ cho các biến thể lời nói của người dùng bằng cách sử dụng khoảng không quảng cáo nội tuyến – đại diện cho các tính năng và nội dung trong ứng dụng.

    <capability android:name="actions.intent.START_EXERCISE">
      <intent
        android:targetPackage="com.example.myapp"
        android:targetClass="com.example.myapp.ExerciseActivity">
        <parameter android:name="exercise.name" android:key="exercise" />
      </intent>
    </capability>
    
    <shortcut android:shortcutId="CARDIO_RUN">
      <capability-binding android:key="actions.intent.START_EXERCISE">
        <parameter-binding
          android:key="exercise.name"
          android:value="@array/run_names" />
        </capability-bindig>
    </shortcut>
    
  7. Cập nhật logic của ứng dụng để xử lý phương thức thực hiện gọi đến cho Hành động trong ứng dụng.

    //FitMainActivity.kt
    
    private fun handleIntent(data: Uri?) {
        var actionHandled = true
        val startExercise = intent?.extras?.getString(START_EXERCISE)
    
        if (startExercise != null){
            val type = FitActivity.Type.find(startExercise)
            val arguments = Bundle().apply {
                putSerializable(FitTrackingFragment.PARAM_TYPE, type)
            }
            updateView(FitTrackingFragment::class.java, arguments)
        }
        else{
            showDefaultView()
            actionHandled = false
        }
        notifyActionSuccess(actionHandled)
    }
    

Xem trước, kiểm thử và phát hành ứng dụng

Hành động trong ứng dụng cung cấp công cụ để xét duyệt và kiểm thử ứng dụng. Để biết thêm thông tin chi tiết, hãy xem bài viết Trình bổ trợ Trợ lý Google cho Android Studio. Sau khi kiểm thử ứng dụng và tạo một bản phát hành thử nghiệm, bạn có thể yêu cầu xét duyệt Hành động trong ứng dụng và triển khai. Hãy xem xét những phương pháp hay nhất sau đây để được hướng dẫn cách xử lý các lỗi thường gặp.

Các phương pháp hay nhất

Hãy tạo một trải nghiệm tích cực cho người dùng khi tích hợp ứng dụng của bạn với Trợ lý bằng cách làm theo những phương pháp hay nhất được đề xuất sau đây.

Hiển thị màn hình xác nhận tương ứng hoặc phù hợp, cùng với phản hồi xúc giác và phản hồi bằng âm thanh để hồi đáp yêu cầu của người dùng, khi thực hiện thành công một yêu cầu hoặc cảnh báo lỗi.

Chất lượng cơ bản Chất lượng tốt hơn Chất lượng tốt nhất
  • Tạo một ý định để bắt đầu ConfirmationActivity từ một hoạt động.
  • Tạo một ý định để bắt đầu ConfirmationActivity từ một hoạt động.
  • Phát tiếng chuông VÀ phản hồi xúc giác để cho biết trạng thái hiện tại.
  • Tạo một ý định để bắt đầu ConfirmationActivity từ một hoạt động.
  • Chuyển văn bản sang lời nói (TTS) và phản hồi xúc giác để báo lỗi hoặc cho biết đã thành công.

Các lỗi thường gặp và cách khắc phục

Đối với các trường hợp lỗi sau, hãy sử dụng thông báo ConfirmationActivity của ứng dụng được đề xuất sau đây.

Trường hợp lỗi Ví dụ về tương tác của người dùng Phản hồi về ứng dụng
Hoạt động đã diễn ra "Bắt đầu ExerciseName của tôi"
"Tiếp tục ExerciseName của tôi"
Lỗi hiển thị: "Hoạt động đã diễn ra".
Chưa bắt đầu hoạt động nào "Tạm dừng/dừng ExerciseName của tôi" Lỗi hiển thị: "Chưa bắt đầu hoạt động nào".
Loại hoạt động không khớp "Tạm dừng/dừng ExerciseName của tôi" – một loại bài tập thể dục khác với hoạt động đang diễn ra. Lỗi hiển thị: "Loại hoạt động không khớp".
Lỗi đăng nhập "Bắt đầu ExerciseName của tôi" khi người dùng chưa đăng nhập vào ứng dụng. Phát phản hồi xúc giác để thông báo cho người dùng và chuyển hướng đến màn hình đăng nhập.
Lỗi quyền Người dùng không có quyền bắt đầu hoạt động mà họ yêu cầu. Phát phản hồi xúc giác để thông báo cho người dùng và chuyển hướng đến màn hình yêu cầu cấp quyền.
Lỗi cảm biến Người dùng đã tắt dịch vụ vị trí trong phần cài đặt của thiết bị. Phát phản hồi xúc giác để cảnh báo người dùng và hiển thị màn hình lỗi cảm biến. Các bước tiếp theo (không bắt buộc):
  • Bắt đầu hoạt động mà không bật tính năng theo dõi cảm biến và thông báo cho người dùng.
  • Yêu cầu người dùng xác nhận để bắt đầu hoạt động mà không bật tính năng theo dõi cảm biến.