Phát trực tuyến ứng dụng đồng hành, Truyền trực tuyến ứng dụng đồng hành

Trong Android 13, tính năng phát trực tuyến ứng dụng cho phép điện thoại truyền phát ứng dụng của họ đế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 ứng dụng tạo và quản lý proxy cho các thiết bị từ xa được kết nối để truyền ứng dụng từ thiết bị cục bộ sang thiết bị từ xa. Ứng dụng giữ vai trò COMPANION_DEVICE_APP_STREAMING có thể có quyền tạo màn hình ảo, khởi chạy ứng dụng trên đó rồi truyền phát video của ứng dụng đã khởi chạy sang một thiết bị khác. Ứng dụng giữ vai trò cũng có thể đưa 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.

Ngành kiến ​​​​trúc

Bắt đầu 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 nền tảng chính để hỗ trợ truyền phát ứng dụng và tương tác với các thiết bị được kết nối từ xa.

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

Truyền phát ứ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 truyền phát một ứng dụng, ứng dụng sẽ được khởi chạy hoặc chuyển sang màn hình ảo. Nội dung của màn hình ảo được truyền dưới dạng luồng video đến thiết bị đượ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 phiên bản VirtualDevice .

Phiên bản VirtualDevice là proxy cho thiết bị được kết nối và các chức năng của thiết bị đó. Phiên bản VirtualDevice cho phép thiết bị đượ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ư sau:

  • Tạo phiên bản VirtualDisplay nhằm mục đích hiển thị trên màn hình của thiết bị được kết nối.
  • Đưa luồng âm thanh từ xa, chẳng hạn như từ micrô của thiết bị được kết nối, vào thiết bị cục bộ để phát lại.
  • Đưa các sự kiện nhập từ xa, chẳng hạn như từ bàn phím của thiết bị được kết nối, vào thiết bị cục bộ để phát lại.

Trình quản lý thiết bị đồng hành

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 được đáp ứng để cho phép truyền phát ứng dụng.

Hình dưới đây minh họa sự 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:

app-streaming-interaction

Hình 1. 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ò phát trực tuyến ứng dụng đồng hành

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

Để tạo một thiết bị ảo nhằm bật tính năng phát trực tuyến ứng dụng, ứng dụng phải có vai trò COMPANION_DEVICE_APP_STREAMING . Khi vai trò được cấp, ứng dụng sẽ nhận được quyền CREATE_VIRTUAL_DEVICE , quyền này cho phép ứng dụng tạo một thiết bị ảo. Người nắm giữ vai trò phải triển khai tính năng phát trực tuyến ứng dụng bằng cách tạo một phiên bản VirtualDevice hoạt động như một proxy cho 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 màn hình ảo, phù hợp để truyền phát tới thiết bị khác. Lớp VirtualDevice cũng cung cấp các API để đưa 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 ứng dụng đang chạy trên thiết bị cục bộ xuất hiện như thể nó đ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 ứ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 truyền phát ứng dụng.

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

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

  5. Khởi chạy mục đích đang chờ xử lý của thông báo trên màn hình ảo và tạo bản quay video về màn hình đó.

  6. Tạo kết nối với thiết bị được kết nối và truyền màn hình ảo tới thiết bị được kết nối.

  7. Đưa lại các sự kiện đầu vào từ thiết bị được kết nối vào thiết bị cục bộ thông qua 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à hủy phiên bản 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 đợi thêm tín hiệu từ thiết bị được kết nối để khởi động lại quá trình phát trực tuyến ứ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 bảo mật như được mô tả trong CDD .

Yêu cầu của 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 ứng dụng truyền phát ứng dụng với một thiết bị. Vai trò này được liên kết với hồ sơ thiết bị để có một số quyền kiểm soát đối với những ứng dụng có thể được thêm vào Cửa hàng Play phù hợp với hồ sơ này. Xem Vai trò Android để biết danh sách các yêu cầu về vai trò COMPANION_DEVICE_APP_STREAMING . Hãy liên hệ với đầu mối liên hệ Google của bạn để 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 truyền phát ứng dụng, vai trò COMPANION_DEVICE_APP_STREAMING giả định rằng ứng dụng giữ vai trò 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ý các màn hình ảo đáng tin cậy, bao gồm cả các màn hình đã mở khóa, như sau:
    • Bắt đầu các hoạt động trên màn hình ảo.
    • Đưa các sự kiện xảy ra trên ứng dụng được truyền trực tuyến trên thiết bị đượ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 ở cùng tọa độ trên điện thoại.
    • Thu thập 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ô của thiết bị được kết nối trong khi ứ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 camera của thiết bị được kết nối trong khi ứng dụng được truyền trực tuyến đang sử dụng camera.
  • Quản lý và truyền phát thông báo từ thiết bị cục bộ đến thiết bị được kết nối và thực hiện hành động đối với thông báo.
  • Truyền siêu dữ liệu từ thiết bị cục bộ, chẳng hạn như danh sách ứng dụng có sẵn trên thiết bị cục bộ, tới thiết bị được kết nối.
  • Yêu cầu xác minh thiết bị.