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.
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:
- Là một phần của
RolesManager
dịch vụ hệ thống - Bằng
VoiceInteractionManagerService
thông quaAssistUtils
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
.
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 đếnVoiceInteractionManagerService
để 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
.
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
.
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ủaINBOX
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.
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ùng và
Xâ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ô.