Các loại kính âm thanh và kính hiển thị có những khả năng khác nhau. Ví dụ: mặc dù tất cả mắt kính âm thanh và mắt kính hiển thị đều có trải nghiệm âm thanh thông qua giọng nói, nhưng chỉ mắt kính hiển thị mới 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.
Để tạo trải nghiệm người dùng liền mạch trên nhiều Thiết bị, hãy lên kế hoạch cho Activity của bạn cho mắt kính để kiểm tra các khả năng của thiết bị. Cách tiếp cận 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 chính nó, 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 âm thanh và kính hiển thị 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 dự kiến. Vòng đời của các hoạt động được chiếu dựa trên vòng đời của activity tiêu chuẩn, nhưng cũng có một số điểm khác biệt chính hỗ trợ các khả năng của nhiều loại kính nghe và kính hiển thị.
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 âm thanh và kính hiển thị:
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 Glimmer Jetpack Compose 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 về ứ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 trọng tâ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. Trong 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 ứ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 của activity đượ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 của activity được chiếu không thay đổi khi màn hình của kính bật hoặc tắt. Hành vi này có nghĩa là activity được chiếu của bạn vẫ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, nhờ đó, trải nghiệm âm thanh của ứng dụng sẽ tiếp tục mà không bị gián đoạn.
Các thay đổi trạng thái của activity 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 như thế nào đến hoạt động dự kiến của bạn
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 hiển thị 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 mắt kính âm thanh và mắt kính hiển thị đ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 âm thanh và kính màn hình được coi là một thiết bị thông minh giúp mở rộng các khả 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 thiết bị mắt 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 bạn phát triển các trải nghiệm cho kính âm thanh và kính hiển thị, ứ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 dự kiến có thể được tự động 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 mắt 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 phần Sử dụng ngữ cảnh được chiếu để truy cập vào phần cứng trên kính âm thanh và kính hiển thị.
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 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.