Truyền trực tuyến qua ứng dụng đồng hành

Trên Android 13, tính năng truyền phát ứng dụng cho phép điện thoại truyền trực tuyến ứng dụng đến thiết bị đã kết nối và cho phép những thiết bị đó tương tác với của chúng tôi. Một 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 đã kết nối để truyền trực tuyến các ứng dụng từ thiết bị cục bộ đến thiết bị từ xa. Ứng dụng đang giữ Vai trò COMPANION_DEVICE_APP_STREAMING có thể có quyền tạo một máy chủ ảo hiển thị, khởi chạy một ứng dụng trên đó rồi truyền trực tuyến video về ứng dụng đã khởi chạy tới thiết bị khác. Ứng dụng chủ vai trò cũng có thể chèn sự kiện đầu vào và micrô nhận được từ mộ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 như một thiết bị ngoại vi.

Kiến trúc

Kể từ Android 13, Thiết bị ảo mới Người quản lýTrình quản lý thiết bị đồng hành (CDM) tạo thành các thành phần quan trọng để hỗ trợ việc truyền phát ứng dụng và tương tác với các thiết bị từ xa, đã kết nối.

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

Tính năng truyền trực tuyến ứng dụng hoạt động bằng cách tận dụng màn hình ảo. Thế giới ảo Trình quản lý thiết bị tạo một màn hình ảo tách biệt với màn hình chính. Khi người dùng đồng ý bắt đầu truyền trực tuyến một ứng dụng, ứng dụng đó sẽ khởi chạy trên hoặc được chuyển tới màn hình ảo. Nội dung của thế giới ảo và màn hình sẽ được truyền trong luồng video đến thiết bị đã kết nối để được 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ý VirtualDevice thực thể.

Thực thể VirtualDevice là proxy cho thiết bị đã kết nối và các chức năng khác nhau. Thực thể VirtualDevice cho phép một thiết bị đã 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 các thao tác sau:

  • Tạo một VirtualDisplay thực thể dùng để hiển thị trên màn hình của thiết bị được kết nối.
  • Chèn một luồng âm thanh từ xa, chẳng hạn như từ vào thiết bị cục bộ để phát lại.
  • Chèn các sự kiện đầu vào từ xa, chẳng hạn như từ bàn phím vào thiết bị cục bộ để phát lại.

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ò mà phải được đáp ứng để bật tính năng truyền trực tuyến ứng dụng.

Hình dưới đây minh hoạ tương tác giữa thiết bị cục bộ và từ xa trên thiết bị trong khi truyền trực tuyến ứng dụng:

lượt tương tác phát trực tuyến ứng dụng

Hình 1. 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 truyền phát ứng dụng

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

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

Để tạo thiết bị ảo cho phép truyền trực tuyến ứng dụng, ứng dụng phải là chủ sở hữu vai trò của vai trò COMPANION_DEVICE_APP_STREAMING. Khi vai trò được cấp, ứng dụng nhận Quyền CREATE_VIRTUAL_DEVICE, cho phép ứng dụng để tạo một thiết bị ảo. Vai trò chủ sở hữu cần triển khai tính năng truyền trực tuyến ứng dụng bằng cách tạo một VirtualDevice thực thể hoạt động dưới dạng proxy cho một thiết bị được kết nối. Lớp VirtualDevice cung cấp các phương thức cho phép trích xuất bề mặt tổng hợp của ả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 sự kiện đầu vào diễn ra trên một 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 dưới dạng nếu nó đang chạy tự nhiên trên một thiết bị từ xa.

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

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

  2. Nhắc người dùng cấp quyền cho ứng dụng để truyền trực tuyến ứng dụng.

  3. Tạo 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 vai trò được cấp.

  4. Gọi điện VirtualDeviceManager#create() để tạo một thực thể VirtualDevice. Với thực thể VirtualDevice, phương thức có thể tạo và quản lý màn hình ảo cũng như đầ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 một quay video màn hình đó.

  6. Kết nối với thiết bị đã kết nối và truyền trực tuyến màn hình ảo sang thiết bị đã kết nối.

  7. Chèn lại sự kiện đầu vào từ thiết bị đã 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 truyền trực tuyến trên thiết bị từ xa, hãy kết thúc quá trình truyền trực tuyến và chia nhỏ thực thể VirtualDevice. Tại thời điểm này, trước đó ứng dụng truyền trực tuyến chạy trong nền trên thiết bị cục bộ và kết nối đã đóng.

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

Ứ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 với CDM và thực thi các yêu cầu về bảo mật như mô tả trong CDD.

Yêu cầu đối với phần tử 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 truyền trực tuyến 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ị của người dùng để có một số quyền kiểm soát đối với những ứng dụng có thể thêm vào Google Play Lưu trữ kết quả khớp với hồ sơ này. Xem Android vai trò để biết danh sách các yêu cầu đối với vai trò COMPANION_DEVICE_APP_STREAMING. Liên hệ đến đầu mối liên hệ của bạn tại Google để biết thêm thông tin.

Chức năng của phần tử giữ vai trò ComputeANION_DEVICE_APP_STREAMING

Để thực hiện việc truyền trực tuyến ứng dụng, vai trò COMPANION_DEVICE_APP_STREAMING giả định rằng ứng dụng chủ vai trò có các chức 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 trong một ứng dụng được truyền trực tuyến trên một thiết bị đã kết nối trở lại trên thiết bị cục bộ, chẳng hạn như phát một sự kiện chạm trên máy tính bảng cùng toạ độ trên điện thoại.
    • Ghi dữ liệu âm thanh từ ứng dụng được truyền trực tuyến.
    • Thay thế luồng micrô của thiết bị cục bộ bằng luồng micrô trong khi một ứng dụng được truyền trực tuyến đang sử dụng micrô.
    • Thay thế luồng camera của thiết bị cục bộ bằng luồng máy ảnh trong khi một ứng dụng được truyền trực tuyến đang sử dụng máy ảnh.
  • 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 thiết bị của bạn và thực hiện hành động đối với thông báo.
  • Siêu dữ liệu truyền trực tuyến từ thiết bị cục bộ, chẳng hạn như danh sách ứng dụng có trên thiết bị cục bộ với thiết bị được kết nối.
  • Yêu cầu xác minh thiết bị.