Thành phần hệ thống và luồng người dùng

Sơ đồ dưới đây minh hoạ các thành phần tương tác với Nội dung nghe nhìn:

Thành phần hệ thống

Hình 1. Thành phần hệ thống

Các yếu tố trong hình này được mô tả trong bảng:

Thành phần Mô tả
Màn hình chính Đại diện cho các nền tảng khác trong giao diện người dùng của ô tô hiển thị và điều khiển trình phát hiện tại nội dung đa phương tiện. Trong AOSP, đây là màn hình chính được hiển thị khi hệ thống khởi động. Từ màn hình này, người dùng có thể xem chi tiết về mục nội dung đa phương tiện đang được phát và thực thi một tập hợp tiêu chuẩn và thao tác tuỳ chỉnh (ví dụ: Phát và Tạm dừng).
Giao diện người dùng hệ thống Cung cấp chức năng bao gồm các tuỳ chọn điều hướng trên giao diện người dùng chung, chẳng hạn như điều hướng đến Nội dung nghe nhìn.
Trợ lý Android cung cấp cơ chế để nhiều ứng dụng trợ lý thoại tương tác với hệ thống. Những ứng dụng này có thể tương tác với Nguồn nội dung nghe nhìn ở chế độ nền (ví dụ: phát bài hát theo lệnh thoại) hoặc chuyển đến Nội dung nghe nhìn ở nền trước (ví dụ: khi ứng dụng trợ lý thoại được hướng dẫn hiển thị giao diện người dùng của một Nguồn nội dung nghe nhìn cụ thể).
Trình chạy ứng dụng Tất cả ứng dụng Android đều bắt đầu trong Trình chạy ứng dụng, bao gồm cả Nguồn nội dung nghe nhìn. Nội dung đa phương tiện có thể hiển thị bộ chọn Nguồn phương tiện riêng, bổ sung hoặc thay thế Trình chạy ứng dụng dưới dạng nơi bắt đầu cho phương tiện truyền thông.
Cửa hàng Google Play Khi GAS được sử dụng, đây là nơi người dùng xác định và cài đặt các ứng dụng mới trong một Thiết bị Android. Đối với nội dung nghe nhìn, sau khi ứng dụng được cài đặt, người dùng sẽ được chuyển hướng đến hoàn tất quá trình đăng nhập hoặc bắt đầu tương tác với ứng dụng.
Trình quản lý phiên nội dung đa phương tiện Dịch vụ hệ thống Android theo dõi và kiểm soát các phiên phát nội dung nghe nhìn từ tất cả nguồn nội dung nghe nhìn. Nó cung cấp các cơ chế để phát hiện thời điểm Nguồn nội dung nghe nhìn trở thành nội dung nghe nhìn nền trước nguồn. Nội dung nghe nhìn và tất cả các ứng dụng khác hiển thị nguồn nội dung nghe nhìn đang phát (cho ví dụ: Màn hình chính), sử dụng Trình quản lý phiên nội dung nghe nhìn để phát hiện các sự kiện này và cập nhật giao diện người dùng cho phù hợp. Nguồn nội dung đa phương tiện tương tác với Trình quản lý phiên nội dung đa phương tiện thông qua Phương tiện truyền thông API phiên.
Đài Ứng dụng chuyên dụng để tương tác với phần cứng đài phát. Tìm kiếm đài phát các đài phát thanh, chọn nhanh các đài xác định gần đây và chuyển đổi giữa các băng tần vô tuyến. Các thành phần giao diện người dùng được chia sẻ bởi cả Đài phát thanh và Nội dung đa phương tiện cho phép người dùng chuyển đổi giữa hai thành phần này của bạn.
Driver Distraction Engine (Công cụ gây mất tập trung cho người lái xe) Dịch vụ hệ thống Android dùng để áp dụng các quy định hạn chế về trải nghiệm người dùng dựa trên trạng thái lái xe của ô tô. Đối với trải nghiệm người dùng đăng nhập và cài đặt các nguồn phương tiện (nơi màn hình được điều khiển trực tiếp bằng nguồn nội dung nghe nhìn), dịch vụ này đảm bảo không có nội dung không an toàn nào hiển thị khi ô tô ở trạng thái lái xe. OEM có thể tuỳ chỉnh định nghĩa về các trạng thái này và cách hệ thống phản ứng trong những tình huống này (ví dụ: bằng cách hiển thị lớp phủ màn hình chặn).

Luồng người dùng

Khởi chạy ứng dụng đa phương tiện

Quy trình chạy Nội dung nghe nhìn xuất hiện bên dưới.

Khởi chạy ứng dụng đa phương tiện

Hình 2. Khởi chạy ứng dụng đa phương tiện

Nội dung nghe nhìn phải được khởi chạy bằng cách sử dụng ngầm ẩn sau CAR_INTENT_ACTION_MEDIA_TEMPLATE. Ý định này có thể có các thông tin sau làm thông tin bổ sung:

  • android.car.intent.extra.MEDIA_COMPONENT (không bắt buộc). Chuỗi bổ sung để thể hiện tên thành phần đã làm phẳng của MediaBrowserService trong ứng dụng đa phương tiện mà Phương tiện đó sẽ kết nối. Nếu không được cung cấp, Nội dung nghe nhìn sẽ hiển thị ứng dụng đa phương tiện hiện được chọn. Ý định này được sử dụng từ điểm truy cập:

    • Giao diện người dùng hệ thống. Dùng để quay lại trải nghiệm Nội dung nghe nhìn hoặc để bắt đầu lại sử dụng ứng dụng trong lần đầu tiên. Trong trường hợp này, Ý định ở trên sẽ được sử dụng mà không có bất kỳ để Phương tiện hiển thị ứng dụng đa phương tiện hiện được chọn.

    • Màn hình chính, Trợ lý và Trung tâm thông báo. Người dùng có thể chuyển đến phần Nội dung nghe nhìn để hiển thị ứng dụng nghe nhìn hiện được chọn. Trong mọi trường hợp, Ý định ngầm ẩn mà không có dữ liệu bổ sung được kích hoạt.

    • Trình chạy ứng dụng. Khi người dùng chọn một ứng dụng đa phương tiện trên trang Trình chạy ứng dụng, ý định ở trên bao gồm CAR_EXTRA_MEDIA_COMPONENT tệp bổ sung chứa ứng dụng đa phương tiện đã chọn. Phương tiện truyền thông chỉ định đây là ứng dụng đã chọn và kết nối với ứng dụng đó. Để biết thông tin chi tiết, hãy xem phần Ứng dụng Tích hợp Trình chạy với nội dung đa phương tiện.

Tích hợp trình chạy ứng dụng với nội dung nghe nhìn

Ứng dụng đa phương tiện không được phép cung cấp bất kỳ hoạt động nào được chú thích bằng Danh mục android.intent.category.LAUNCHER. Kết quả là, Trình chạy ứng dụng (hoặc tương đương) phải triển khai logic đặc biệt để giải quyết việc tích hợp nguồn phương tiện:

  • Trình chạy ứng dụng phải quét hệ thống để tìm các gói đang triển khai MediaBrowserService.SERVICE_INTERFACE. Đối với các gói này, Trình chạy ứng dụng tìm nạp biểu tượng dịch vụ tương tự như biểu tượng dùng để tìm nạp hoạt động.

  • Sau đó, Trình chạy ứng dụng sẽ kết hợp các gói này với những gói triển khai android.intent.category.LAUNCHER hoạt động. Nếu ứng dụng cung cấp Việc triển khai MediaBrowserService và hoạt động của trình chạy, dịch vụ sẽ lấy quyền ưu tiên.

    Tại thời điểm viết bài này, không ứng dụng nguồn nội dung nghe nhìn nào có thể cung cấp hoạt động của trình chạy.

  • Bạn có thể tìm thấy ví dụ về logic này trong mã AOSP (Dự án nguồn mở Android) tại AppLauncherUtils#getAllLauncherApps().

Các lựa chọn cấu hình và quy trình đăng nhập

Ứng dụng đa phương tiện có thể bao gồm hoạt động Cài đặt được tối ưu hoá cho xe. Một hoạt động như vậy có thể dùng để triển khai luồng người dùng không được Android Media API xử lý, ví dụ:

  • Đăng nhập
  • Đăng xuất
  • Chuyển đổi tài khoản
  • Hiển thị mà người dùng hiện đang đăng nhập (nếu có)
  • Cấu hình dịch vụ

Quy trình đăng nhập

Hình 3. Quy trình đăng nhập

Hoạt động Cài đặt này được ứng dụng đa phương tiện khai báo bằng bộ lọc ý định sau đây:

<activity android:name=".AppSettingsActivity"
          android:exported="true
          android:theme="@style/SettingsActivity"
           android:label="@string/app_settings_activity_title">
   <intent-filter>
       <action android:name="android.intent.action.APPLICATION_PREFERENCES"/>
   </intent-filter>
</activity>

Nội dung đa phương tiện phải triển khai logic sau:

  • Kiểm tra để đảm bảo ứng dụng đa phương tiện đang được chọn bao gồm hoạt động với Bộ lọc ý định.

  • Nếu có, hãy cho phép người dùng chuyển đến hoạt động đó.

  • Nếu Các hạn chế về trải nghiệm người dùng trên ô tô đang có hiệu lực (ví dụ: ô tô đang di chuyển), thì thuộc tính tương tác này sẽ bị tắt vì hoạt động Cài đặt không phải là Giao diện người dùng được tối ưu hoá cho trình điều khiển.

Xử lý lỗi và yêu cầu đăng nhập

Nội dung nghe nhìn tương tác với các ứng dụng đa phương tiện thông qua Android Media Session API. Là một phần của quá trình này API, Nội dung nghe nhìn nhận được một PlaybackState đối tượng này cho biết trạng thái hiện tại của ứng dụng đa phương tiện.

Quá trình đăng nhập bắt đầu khi ứng dụng đa phương tiện thay đổi PlaybackState đến STATE_ERROR! bao gồm một mã lỗi cụ thể (xem chi tiết bên dưới). Khi việc này xảy ra, Phương tiện sẽ hiển thị mô tả lỗi và một thuộc tính tương tác để điều hướng đến một hoạt động đăng nhập do ứng dụng đa phương tiện triển khai.

Các ứng dụng có thể dùng chính quy trình này để báo hiệu các tình huống lỗi khác (ví dụ: lỗi kết nối máy chủ).

Xử lý lỗi

Hình 4. Xử lý lỗi

Trong quá trình xử lý lỗi PlaybackState thông thường, Nội dung nghe nhìn phải kiểm tra dữ liệu đầu vào sau đây.

  • Mã lỗi PlaybackState bằng PlaybackStateCompat#ERROR_CODE_AUTHENTICATION_EXPIRED. Tín hiệu này ứng dụng đa phương tiện yêu cầu đăng nhập để tiếp tục hoạt động. Có thể là các mã lỗi khác chỉ số này cho biết các loại tình huống lỗi khác.

  • PlaybackState thông báo lỗi (do các ứng dụng đa phương tiện đặt bằng PlaybackStateCompat.Builder#setErrorMessage phương thức) chứa nội dung giải thích mà con người có thể đọc được (ví dụ: "Bạn chưa đăng nhập"). Thông báo này phải được hiển thị cho của người dùng và ứng dụng đó phải được tối ưu hoá khả năng chống phân tâm (DO).

  • PlaybackState có thể bao gồm các dữ liệu bổ sung sau (không bắt buộc) (do nội dung nghe nhìn đặt) ứng dụng có PlaybackStateCompat.Builder#setExtras ) bằng các khoá sau.

    • android.media.extras.ERROR_RESOLUTION_ACTION_LABEL. Đặt thành một chuỗi chứa thông báo mà con người có thể đọc được sẽ được hiển thị trên nút mà người dùng chạm vào để bắt đầu quy trình đăng nhập.

    • android.media.extras.ERROR_RESOLUTION_ACTION_INTENT. Đặt bằng PendingIntent sẽ trở thành được kích hoạt khi người dùng nhấp vào nút nêu trên. Chiến dịch này PendingIntent trỏ đến một hoạt động đăng nhập tuỳ chỉnh do cùng một ứng dụng đa phương tiện triển khai.

  • Trạng thái của PlaybackState bằng STATE_ERROR. Điều này cho biết bạn không thể thực hiện thao tác nào khác cho đến khi quá trình đăng nhập hoàn tất.