Truyền phát ứng dụng đồng hành

Trong Android 13, tính năng phát trực tuyến qua ứng dụng cho phép điện thoại phát trực tuyến ứng dụng của mình đến các thiết bị được kết nối và cho phép các thiết bị đó tương tác với ứng dụng. Vai trò COMPANION_DEVICE_APP_STREAMING mới cho phép một ứng dụng tạo và quản lý proxy cho các thiết bị từ xa được kết nối để phát trực tuyến ứng dụng từ thiết bị cục bộ đến thiết bị từ xa. Ứng dụng giữ vai trò COMPANION_DEVICE_APP_STREAMING có thể nhận được quyền tạo màn hình ảo, chạy một ứng dụng trên màn hình đó, sau đó phát trực tuyến video của ứng dụng đã chạy đến một thiết bị khác. Ứng dụng giữ vai trò này cũng có thể chèn các sự kiện đầu vào và micrô nhận được từ thiết bị từ xa trở lại thiết bị cục bộ, như thể thiết bị đó được kết nối dưới dạng thiết bị ngoại vi.

Kiến trúc

Kể từ Android 13, Trình quản lý thiết bị ảo mới và Trình quản lý thiết bị đồng hành (CDM) tạo thành các khối xây dựng chính để hỗ trợ tính năng phát trực tuyến qua ứng dụng và tương tác với các thiết bị từ xa được kết nối.

Trình quản lý thiết bị ảo

Tính năng phát trực tuyến qua ứng dụng hoạt động bằng cách tận dụng màn hình ảo. Trình quản lý thiết bị ảo tạo một màn hình ảo tách biệt với màn hình chính hiển thị. Khi người dùng đồng ý bắt đầu phát trực tuyến một ứng dụng, ứng dụng đó sẽ được chạy hoặc chuyển sang màn hình ảo. Nội dung của màn hình ảo được chuyển trong một luồng video đến thiết bị thông minh được kết nối để hiển thị.

Trình quản lý thiết bị ảo bao gồm các API cho phép tạo, đăng ký, và quản lý các VirtualDevice thực thể.

Thực thể VirtualDevice là một proxy cho thiết bị thông minh được kết nối và các chức năng của thiết bị đó. Thực thể VirtualDevice cho phép thiết bị thông minh được kết nối nhận, hiển thị và tương tác với luồng ứng dụng đến bằng cách thực hiện những việc sau:

Companion Device Manager

CDM quản lý trạng thái kết nối và thực thi các yêu cầu về vai trò phải đáp ứng để bật tính năng phát trực tuyến qua ứng dụng.

Hình sau đây minh hoạ các hoạt động tương tác giữa thiết bị cục bộ và thiết bị từ xa trong quá trình phát trực tuyến qua ứng dụng:

app-streaming-interaction

Hình 1. Các hoạt động tương tác giữa thiết bị cục bộ và thiết bị từ xa trong quá trình phát trực tuyến qua ứng dụng

Triển khai vai trò phát trực tuyến qua ứng dụng đồng hành

Các OEM có thể triển khai một ứng dụng có vai trò COMPANION_DEVICE_APP_STREAMING để mang đến trải nghiệm phong phú và an toàn trên nhiều thiết bị cho thiết bị của họ.

Để tạo thiết bị ảo nhằm bật tính năng phát trực tuyến qua ứng dụng, ứng dụng phải là người giữ vai trò COMPANION_DEVICE_APP_STREAMING. Khi được cấp vai trò này, ứng dụng sẽ nhận được CREATE_VIRTUAL_DEVICE quyền, cho phép ứng dụng tạo thiết bị ảo. Người giữ vai trò này dự kiến sẽ triển khai tính năng truyền phát ứng dụng bằng cách tạo một thực thể VirtualDevice đóng vai trò là proxy cho thiết bị thông minh. Lớp VirtualDevice cung cấp các phương thức cho phép trích xuất một bề mặt tổng hợp của màn hình ảo, phù hợp để phát trực tuyến đến một thiết bị khác. Lớp VirtualDevice cũng cung cấp các API để chèn các sự kiện đầu vào xảy ra trên thiết bị từ xa vào thiết bị cục bộ, cho phép một ứng dụng đang chạy trên thiết bị cục bộ xuất hiện như thể đang chạy tự nhiên trên thiết bị từ xa.

Hãy làm theo các bước sau để triển khai vai trò phát trực tuyến qua ứng dụng đồng hành:

  1. Tạo một ứng dụng yêu cầu quyền REQUEST_COMPANION_PROFILE_APP_STREAMING trong tệp kê khai.

  2. Nhắc người dùng cấp quyền cho ứng dụng để thực hiện tính năng phát trực tuyến qua ứng dụng.

  3. Tạo thực thể CDM AssociationRequest để yêu cầu vai trò COMPANION_DEVICE_APP_STREAMING. Ứng dụng sẽ nhận được quyền CREATE_VIRTUAL_DEVICE khi được cấp vai trò này.

  4. Gọi VirtualDeviceManager#create() để tạo thực thể VirtualDevice. Với thực thể VirtualDevice, ứng dụng có thể tạo và quản lý màn hình ảo và đầu vào ảo.

  5. Chạy ý định đang chờ xử lý của thông báo trên màn hình ảo và tạo bản ghi video của màn hình đó.

  6. Tạo kết nối với thiết bị thông minh và phát trực tuyến màn hình ảo sang thiết bị thông minh.

  7. Chèn lại các sự kiện đầu vào từ thiết bị thông minh được kết nối vào thiết bị cục bộ thông qua các API VirtualDevice.

  8. Khi người dùng đóng ứng dụng phát trực tuyến trên thiết bị từ xa, hãy kết thúc luồng và huỷ thực thể VirtualDevice. Tại thời điểm này, ứng dụng phát trực tuyến trước đó sẽ chạy ở chế độ nền trên thiết bị cục bộ và kết nối sẽ bị đóng.

  9. Nếu cần, hãy chờ thêm tín hiệu từ thiết bị thông minh được kết nối để khởi động lại tính năng phát trực tuyến qua ứng dụng.

Ứng dụng chịu trách nhiệm kết nối với thiết bị từ xa, báo cáo trạng thái kết nối cho CDM và thực thi các yêu cầu về bảo mật như mô tả trong tài liệu CDD.

Yêu cầu đối với người giữ vai trò COMPANION_DEVICE_APP_STREAMING

CDM cấp vai trò COMPANION_DEVICE_APP_STREAMING khi người dùng liên kết một ứng dụng phát trực tuyến qua ứng dụng với một thiết bị. Vai trò này được liên kết với một hồ sơ thiết bị, vì vậy, bạn có thể kiểm soát một số ứng dụng có thể được thêm vào Cửa hàng Play khớp với hồ sơ này. Hãy xem Các vai trò trên Android để biết danh sách các yêu cầu về vai trò COMPANION_DEVICE_APP_STREAMING. Vui lòng liên hệ với đầu mối liên hệ của bạn tại Google để biết thêm thông tin.

Khả năng của người giữ vai trò COMPANION_DEVICE_APP_STREAMING

Để thực hiện tính năng phát trực tuyến qua ứng dụng, vai trò COMPANION_DEVICE_APP_STREAMING giả định rằng ứng dụng giữ vai trò này có các khả năng và hành vi sau:

  • Tạo và quản lý kết nối với các thiết bị khác.
  • Tạo và quản lý màn hình ảo đáng tin cậy, bao gồm cả màn hình đã mở khoá, như sau:
    • Bắt đầu các hoạt động trên màn hình ảo.
    • Chèn các sự kiện xảy ra trên một ứng dụng phát trực tuyến trên thiết bị thông minh được kết nối trở lại thiết bị cục bộ, chẳng hạn như phát sự kiện chạm trên Máy tính bảng tại cùng toạ độ trên điện thoại.
    • Ghi lại dữ liệu âm thanh từ ứng dụng được phát trực tuyến.
    • Thay thế luồng micrô của thiết bị cục bộ bằng luồng micrô của thiết bị được kết nối trong khi ứng dụng được phát trực tuyến đang sử dụng micrô.
    • Thay thế luồng video của camera trên thiết bị cục bộ bằng luồng video của camera trên thiết bị thông minh trong khi ứng dụng phát trực tuyến đang sử dụng camera.
  • Quản lý và phát trực tuyến thông báo từ thiết bị cục bộ đến thiết bị được kết nối, đồng thời thực hiện các hành động đối với thông báo.
  • Phát trực tuyến siêu dữ liệu từ thiết bị cục bộ (chẳng hạn như danh sách các ứng dụng có trên thiết bị cục bộ) đến thiết bị thông minh.
  • Yêu cầu xác minh thiết bị.