Lập kế hoạch hỗ trợ nhiều loại kính AI

Các thiết bị XR áp dụng
Hướng dẫn này giúp bạn tạo trải nghiệm cho các loại thiết bị XR này.
Kính AI

Mỗi loại kính AI lại có những khả năng riêng. Ví dụ: mặc dù tất cả kính AI đều có trải nghiệm âm thanh thông qua giọng nói, nhưng một số kính AI cũng có màn hình nơi ứng dụng của bạn có thể hiển thị giao diện người dùng được tạo bằng Jetpack Compose Glimmer.

Để mang đến trải nghiệm liền mạch cho người dùng trên nhiều thiết bị kính AI, hãy lên kế hoạch cho Activity của bạn cho kính để kiểm tra các chức năng của thiết bị. Phương pháp này giúp đơn giản hoá quá trình phát triển bằng cách cho phép bạn tạo một hoạt động thích ứng với hành vi của mình, thay vì nhiều hoạt động nhắm đến các thiết bị cụ thể.

Tìm hiểu vòng đời của các hoạt động được chiếu

Hoạt động mà bạn tạo cho kính AI không chạy trực tiếp trên thiết bị mà được chiếu lên thiết bị từ một thiết bị lưu trữ (chẳng hạn như điện thoại của người dùng). Những hoạt động chuyên biệt mà bạn xây dựng cho mục đích này là hoạt động được dự đoán. Vòng đời của các hoạt động được chiếu dựa trên vòng đời hoạt động tiêu chuẩn, nhưng cũng có một số điểm khác biệt chính hỗ trợ các chức năng của nhiều loại kính AI.

Hình 1. Các sự kiện chính trong vòng đời của các hoạt động được chiếu.

Sau đây là thông tin chi tiết về các sự kiện chính, kèm theo chú thích cho những lượt tương tác dành riêng cho các hoạt động được chiếu lên kính AI:

  • onCreate()
    • Được gọi khi hoạt động được chiếu được tạo.
    • Khởi chạy giao diện người dùng Jetpack Compose Glimmer và các thành phần khác của ứng dụng tại đây.
  • onStart()
    • Được gọi khi hoạt động được chiếu bắt đầu và người dùng nhận biết ứng dụng.
  • onResume()
    • Được gọi khi hoạt động được chiếu lấy lại tiêu điểm. Khi hoạt động đang ở trạng thái tiêu điểm, hoạt động đó có thể tương tác và có thể sử dụng dữ liệu đầu vào từ bàn di chuột hoặc nút.
    • Được gọi khi kính được đeo lại (đeo) sau khi được tháo ra khỏi đầu (tháo).
  • onPause()
    • Được gọi khi hoạt động được chiếu mất tiêu điểm, nhưng người dùng vẫn nhận biết được ứng dụng của bạn. Khi hoạt động không được chú ý, hoạt động đó sẽ không tương tác được và ngừng sử dụng dữ liệu đầu vào.
  • onStop()
    • Được gọi khi hệ thống cho rằng người dùng không còn nhận biết về ứng dụng của bạn nữa.
    • Được gọi khi kính được tháo khỏi đầu (tháo kính).
  • onDestroy()
    • Được gọi khi hoạt động được chiếu sắp bị huỷ. Khi phương thức này được gọi, hệ thống sẽ giải phóng tất cả tài nguyên được liên kết với hoạt động.

Tìm hiểu cách trạng thái hiển thị ảnh hưởng đến vòng đời hoạt động được chiếu

Trong Activity tiêu chuẩn, trạng thái vòng đời sẽ thay đổi khi màn hình của thiết bị tắt, thường chuyển sang onPause() hoặc onStop(). Ngược lại, vòng đời hoạt động được chiếu không thay đổi khi màn hình của kính AI bật hoặc tắt. Hành vi này có nghĩa là hoạt động được chiếu của bạn tiếp tục chạy ở trạng thái Đã bắt đầu hoặc Đã tiếp tục ngay cả khi màn hình tắt, cho phép trải nghiệm âm thanh của ứng dụng tiếp tục mà không bị gián đoạn.

Các thay đổi trạng thái hoạt động khác do các sự kiện hệ thống và người dùng khác nhau kích hoạt sẽ hoạt động theo cách thông thường.

Tìm hiểu mức độ nhận biết của người dùng ảnh hưởng đến hoạt động dự kiến của bạn như thế nào

Người dùng có thể biết về hoạt động dự kiến của bạn ngay cả khi hoạt động đó không hiển thị. Nhận biết là tất cả những cách mà người dùng có thể cảm nhận và tương tác với trải nghiệm trong ứng dụng của bạn, bao gồm cả những cách sau:

  • Nghe âm thanh, phản hồi bằng âm thanh hoặc các tín hiệu âm thanh khác.
  • Các thao tác của ứng dụng kích hoạt đèn LED cho người dùng, chẳng hạn như chỉ báo quyền riêng tư nếu ứng dụng của bạn truy cập vào camera hoặc micrô.

Trong những trường hợp này, người dùng biết rằng kính AI đang hoạt động và phản hồi, ngay cả khi họ không nhìn vào màn hình:

  • Trạng thái onStart() đối với các hoạt động được chiếu có nghĩa là hoạt động đang diễn ra.
  • Trạng thái onResume() có nghĩa là hoạt động có thể tương tác và có thể nhận dữ liệu đầu vào từ bàn di chuột hoặc đang nhận lệnh điều phối dữ liệu đầu vào chính.

Miễn là người dùng biết về ứng dụng của bạn, hoạt động của bạn vẫn hoạt động và ở nền trước. Nếu không phát hiện thấy bất kỳ tín hiệu nào cho biết người dùng đang chú ý trong một khoảng thời gian ngắn, hệ thống sẽ xoá hoạt động khỏi nền trước và cuối cùng kích hoạt onStop().

Tìm hiểu về các hoạt động dự kiến và bối cảnh dự kiến

Kính AI được coi là một thiết bị kết nối giúp mở rộng các chức năng của điện thoại người dùng. Ngữ cảnh được chiếu là một Context có nhận biết thiết bị, cho phép các ứng dụng tương tác với phần cứng trên một thiết bị kính được kết nối (chẳng hạn như cảm biến, camera hoặc micrô) thay vì phần cứng của điện thoại. Khi phát triển trải nghiệm cho kính AI, ứng dụng của bạn phải sử dụng một ngữ cảnh được chiếu để truy cập vào phần cứng của kính.

Ngữ cảnh được chiếu có thể tự động được cấp cho ứng dụng của bạn, tuỳ thuộc vào ngữ cảnh của hoạt động gọi:

  • Đối với các hoạt động được chiếu: Nếu mã của ứng dụng đang chạy trong hoạt động được chiếu, thì ngữ cảnh hoạt động riêng của mã đó đã là một ngữ cảnh được chiếu. Trong trường hợp này, các lệnh gọi được thực hiện trong hoạt động đó đã có thể truy cập vào phần cứng của kính.

  • Đối với các ứng dụng hoặc dịch vụ trên điện thoại: Nếu một phần của ứng dụng bên ngoài hoạt động được chiếu (chẳng hạn như hoạt động trên điện thoại hoặc dịch vụ) cần truy cập vào phần cứng của kính, thì phần đó phải lấy được ngữ cảnh được chiếu một cách rõ ràng. Để thực hiện việc này, hãy sử dụng phương thức createProjectedDeviceContext().

Để biết thêm thông tin, hãy xem bài viết Sử dụng ngữ cảnh được chiếu để truy cập vào phần cứng của kính AI.

Tìm hiểu về các API nhận biết thiết bị

Một số API Android tiêu chuẩn thay đổi phần cứng của thiết bị mà chúng truy cập, tuỳ thuộc vào Context của hoạt động gọi. Khi nhận được một ngữ cảnh được chiếu, các API này sẽ truy cập vào phần cứng của kính AI thay vì phần cứng trên thiết bị điện thoại chủ:

  • CameraManager: Truy cập vào camera trên kính.
  • SensorManager: Truy xuất dữ liệu cảm biến (ví dụ: dữ liệu con quay hồi chuyển hoặc gia tốc kế) từ kính.
  • AudioManager: Quản lý các luồng âm thanh, âm lượng và định tuyến trên kính.
  • AudioRecord: Ghi lại âm thanh bằng micrô của kính.