Quy trình tích hợp

Việc lựa chọn VIA hoạt động được thực hiện bởi ManageAssistActivity trong phần CarSettings (Cài đặt ô tô). Quy trình này được ứng dụng PackageInstaller kích hoạt, như một phần của phần Ứng dụng mặc định trên màn hình Cài đặt.

Ứng dụng mặc định trên màn hình Cài đặt

Hình 1. Ứng dụng mặc định trên màn hình Cài đặt

VIA đã chọn được hiển thị với hệ thống theo hai cách:

  1. Là một phần của RolesManager dịch vụ hệ thống
  2. Bằng VoiceInteractionManagerService thông qua AssistUtils API nội bộ.

Có thể lấy danh sách VIA ứng cử viên bằng RolesManager với tên vai trò android.app.role.ASSISTANT.

Kích hoạt cụm từ kích hoạt

Android cung cấp tính năng AlwaysOnHotwordDetector dưới dạng trừu tượng ở đầu DSP phần cứng. Điều này mang lại một cách thuận tiện để liên kết VoiceInteractionService với một mẫu giọng nói để luôn bật chế độ có mức năng lượng thấp nhận dạng giọng nói. Đây là luồng tương tác phổ biến và phổ biến nhất mà người dùng yêu cầu tương tác với Ứng dụng Voice (VA) để bắt đầu một cuộc trò chuyện mới. Giọng nói các phiên hoạt động đã bắt đầu theo cách này được xác định bằng SHOW_SOURCE_ASSIST_GESTURE flag.

Kích hoạt cụm từ kích hoạt

Hình 2. Kích hoạt cụm từ kích hoạt

Chú giải. Dịch vụ hệ thống có màu xanh dương nhạt, các thành phần VIA có màu xanh lục.

Kích hoạt PTT

Điều này áp dụng cho thao tác nhấn lâu hoặc ngắn vào nút phần cứng. Trong AAOS, PTT được xử lý bởi CarInputService. Trong quá trình triển khai mặc định, dịch vụ này xử lý sự kiện đầu vào nhận được qua Lớp trừu tượng phần cứng (HAL) cho xe và trong trường hợp cụ thể là giọng nói tương tác thì sẽ áp dụng logic sau cho các sự kiện chính:

  • Các sự kiện PTT ngắn (KeyEvent.KEYCODE_VOICE_ASSIST) được chuyển đến VoiceInteractionManagerService để bắt đầu một phiên thoại mới.
  • Các sự kiện PTT dài sẽ được truyền lần đầu tiên cho các bộ thu chiếu (ví dụ: Android Auto hoặc CarPlay), sau đó đến các thiết bị được kết nối Bluetooth và cuối cùng đến thiết bị VIA cục bộ .

Các phiên đã bắt đầu sử dụng quy trình này được xác định bằng SHOW_SOURCE_PUSH_TO_TALK.

Kích hoạt PTT

Hình 3. Kích hoạt PTT

Để tích hợp nút điều khiển bằng giọng nói cho phần cứng vào AAOS, hãy xem nội dung tích hợp Automotive Key Input (Nhập khoá ô tô).

Kích hoạt tính năng Chạm để nói chuyện (hoặc nút phần mềm)

Việc kích hoạt tương tác bằng giọng nói từ giao diện người dùng hệ thống được thực hiện bằng AssistUtil. Đây là API hệ thống ẩn chỉ có thể sử dụng các ứng dụng hệ thống đi kèm như giao diện người dùng hệ thống cho phép:

  • Tương tác với VoiceInteractionManagerService để bắt đầu phiên điều khiển bằng giọng nói.
  • Xác định VIA hiện được chọn.

Để tự động trình bày ứng dụng VIA đã chọn, giao diện người dùng hệ thống có thể sử dụng RoleManager và làm theo các thay đổi đối với trình giữ vai trò cho ROLE_ASSISTANT. Bạn có thể xem một ví dụ về cách triển khai kích hoạt TTT trong CarSystemUI, AssistantButton.

Kích hoạt tính năng Chạm để nói

Hình 4. Kích hoạt tính năng Chạm để nói

Chạm để đọc (TTR) của trợ lý thoại

Trong Automotive, các thông báo đăng lên Trung tâm thông báo được xác định là Thông báo của INBOX hoặc INBOX_IN_GROUP (ví dụ: tin nhắn SMS) thêm nút hành động Phát để người dùng có thể đọc to thông báo bởi VIA đã chọn và trả lời bằng giọng nói nếu muốn.

Thông báo

Hình 5. Thông báo

Để biết thêm thông tin về cách triển khai quy trình này, hãy xem Tên người dùng .

Chạy VIA từ trình chạy ô tô

Như bất kỳ ứng dụng nào khác, VIA có thể bao gồm một hoặc nhiều hoạt động của trình chạy trên tệp kê khai của chúng. Điều này tuỳ thuộc vào nhà phát triển ứng dụng và OEM chấp nhận cài đặt trước ứng dụng này để quyết định các hoạt động này sẽ thực hiện.

Lưu ý quan trọng. Trong Automotive, tất cả hoạt động, bao gồm cả hệ thống đều tuân theo các hạn chế về trải nghiệm người dùng khi lái xe. Nếu trải nghiệm bạn muốn biểu tượng trình chạy phải có sẵn trong khi lái xe, hãy thêm biểu tượng này vào danh sách cho phép (nếu bạn là OEM) hoặc chú thích hoạt động bằng distractionOptimized siêu dữ liệu. Để biết thêm thông tin, hãy xem Nguyên tắc về sự phân tâm của người lái xe.

HAL DSP và âm thanh

Hãy nhớ xem các nguyên tắc mới cập nhật về tính năng âm thanh luôn bật đồng thời ghi âm và âm thanh HAL ở chế độ Chụp đồng thời. Quyền truy cập vào các API này có thể tác động đáng kể đến hiệu suất của cụm từ kích hoạt như được giải thích tại Phản hồi cụm từ kích hoạt.

Quyền

Cấp các quyền đặc quyền của hệ thống

Do đó, người dùng không thể cấp quyền đặc quyền, nếu VIA cần bất kỳ OEM (Nhà sản xuất thiết bị gốc) phải tải trước APK trong ảnh hệ thống và cấp các quyền đó một cách rõ ràng trong các bản dựng của mình. Xem Yêu cầu quyền truy cập.

Để thực hiện việc này, hãy thêm phần phụ thuộc danh sách cho phép đặc quyền vào dự án:

Android.bp

android_app {
     ...
     required: ["privapp_allowlist_com.example.myvoicecontrol"],
     ...
}

Thêm tệp quyền trong danh sách cho phép đặc quyền của hệ thống vào yourdata/etc/car thư mục:

vendor/…/data/etc/car/Android.bp

prebuilt_etc {
    name:privapp_allowlist_com.example.myvoicecontrol",
    sub_dir: "permissions",
    src: "com.example.myvoicecontrol.xml",
    filename_from_src: true,
}

vendor/…/data/etc/car/com.example.myvoicecontrol.xml

<?xml version="1.0" encoding="utf-8"?>
<permissions>
    <privapp-permissions package="com.android.car.voicecontrol">
        <permission name="android.permission.MEDIA_CONTENT_CONTROL"/>
    </privapp-permissions>
</permissions>

Cấp quyền nguy hiểm trước

Như được nêu trong Yêu cầu , VIA yêu cầu người dùng phải đồng ý để truy cập vào một số chức năng. Một vài tính năng trong số này các quyền đã được cấp trước cho VoiceInteractionService mặc định (xem DefaultPermissionGrantPolicy.java). Để biết thêm thông tin về các quyền đối với trình xử lý mặc định, hãy xem Quyền chỉ dùng trong trình xử lý mặc định. Bạn cũng có thể cấp quyền trước bằng cách sử dụng default-permissions.xml tệp cấu hình. Để biết thông tin chi tiết về liên quan đến việc cấp trước quyền, hãy xem Phần 9 trong Tài liệu định nghĩa về khả năng tương thích (CDD).

Lưu ý quan trọng. Trong mọi trường hợp, chỉ VIA mặc định mới có những quyền này đã được cấp trước. Nếu hệ thống đã tải trước nhiều VIA, VIA không mặc định phải yêu cầu người dùng cấp quyền một cách rõ ràng như một phần của quá trình thiết lập hoặc trong lần sử dụng đầu tiên.

Phân phối (cài đặt trước và triển khai bản cập nhật)

VIA được cài đặt sẵn phải dưới /product/priv-apps hoặc /vendor/priv-apps phân vùng và thư mục (xem thêm về phân vùng tại Tổng quan về phân vùngXây dựng sản phẩm ).

Trong trường hợp thứ hai, vì phân vùng nhà cung cấp có thể được cập nhật riêng khỏi hệ thống, nên các ứng dụng được lưu trữ ở đây sẽ không thể truy cập vào các API hệ thống @hide. Tuỳ thuộc vào vị trí của các ứng dụng được cài đặt sẵn, thao tác cập nhật có thể được tiến hành dưới dạng OTA (xem bản cập nhật OTA) hoặc thông qua ứng dụng từ một cửa hàng ứng dụng.

Tuỳ chỉnh

Như đã đề cập trong Khái niệm dành riêng cho ô tô, Tính nhất quán và tuỳ chỉnh của giao diện người dùng/trải nghiệm người dùng trong ô tô đóng vai trò quan trọng hơn trong mọi hệ số hình dạng khác. Để có khả năng tương tác tối đa, hãy sử dụng AAOS Bạn nên sử dụng thư viện giao diện người dùng cho ô tô. Thư viện này bao gồm các thành phần và tài nguyên có thể tích hợp vào ứng dụng ứng dụng được thiết kế để nhà sản xuất thiết bị gốc (OEM) tuỳ chỉnh. Bằng cách này, một APK có thể được tạo trong một để giao diện người dùng của ứng dụng có thể được tuỳ chỉnh theo thiết kế của từng mẫu ô tô.