הבחירה של ה-VIA הפעילה מתבצעת על ידי
ManageAssistActivity
ב-CarSettings התהליך הזה מופעל על ידי האפליקציה PackageInstaller
, כחלק
בקטע 'אפליקציות ברירת מחדל' במסך ההגדרות.
איור 1. אפליקציות ברירת המחדל במסך ההגדרות
כרטיס ה-VIA שנבחר חשוף למערכת בשתי דרכים:
- כחלק מ
RolesManager
שירות מערכת - מאת
VoiceInteractionManagerService
עדAssistUtils
לממשק ה-API הפנימי.
אפשר לקבל רשימה של כרטיסי VIA מועמדים באמצעות הכתובת RolesManager
בשם התפקיד android.app.role.ASSISTANT
.
הפעלה של מילת ההפעלה
מערכת Android מספקת את תמידOnHotwordDetector
כהפשטה מעל ל-DSP של החומרה. הדבר מספק דרך נוחה
שיוך VoiceInteractionService
לתבנית קול שפועלת כל הזמן
זיהוי קולי. זהו תהליך האינטראקציה הנפוץ והידוע ביותר, שבו המשתמש
בקשות ליצור אינטראקציה עם אפליקציה של Voice (VA) כדי להתחיל שיחה חדשה. הודעה קולית
סשנים שהתחילו בדרך הזו מזוהים באמצעות SHOW_SOURCE_ASSIST_GESTURE flag
.
איור 2. הפעלה של מילת ההפעלה
מקרא. שירותי מערכת מופיעים בצבע תכלת, רכיבי VIA בירוק.
הפעלת PTT
הכלל הזה רלוונטי ללחיצה ארוכה או קצרה על לחצן החומרה. ב-AAOS, הטיפול ב-PTT מתבצע על ידי CarInputService: בהטמעת ברירת מחדל, השירות הזה מטפל אירועי קלט שהתקבלו דרך תקן HAL של רכב, ובמקרה של זיהוי קולי ספציפי, היא מחילה את הלוגיקה הבאה על אירועים מרכזיים:
- אירועי PTT קצרים (
KeyEvent.KEYCODE_VOICE_ASSIST
) מופנים אלVoiceInteractionManagerService
כדי להתחיל סשן קולי חדש. - אירועי PTT ארוכים מועברים ישירות למקלטי ההקרנה (לדוגמה, Android Auto או CarPlay), לאחר מכן למכשירים שמחוברים ל-Bluetooth ול-VIA המקומי. אפליקציה.
סשנים שהתחילו באמצעות התהליך הזה זוהו באמצעות SHOW_SOURCE_PUSH_TO_TALK
.
איור 3. הפעלת PTT
כדי לשלב לחצן בקרה קולי באמצעות חומרה עם AAOS, צריך לעיין בשילוב של קלט מפתח לרכב.
הפעלת 'הקשה לדיבור' (או לחצן תוכנה)
הפעלת האינטראקציה הקולית מממשק המשתמש של המערכת מתבצעת באמצעות AssistUtil. זהו API של מערכת מוסתרת שיכול לשמש רק אפליקציות מערכת בחבילה, כמו ממשק המשתמש של המערכת שמאפשר:
- אינטראקציה עם
VoiceInteractionManagerService
כדי להתחיל סשנים של שליטה באמצעות הקול. - בוחרים באפשרות ה-VIA הנוכחית שנבחרה.
כדי להציג באופן דינמי את אפליקציית VIA שנבחרה, ממשק המשתמש של המערכת יכול להשתמש
RoleManager
ולפעול בהתאם לשינויים לגבי בעלי התפקיד של ROLE_ASSISTANT
.
דוגמה להטמעת טריגרים מסוג TicketT זמינה ב-CarSystemUI, AssistantButton
.
איור 4. הפעלת התכונה 'מצמידים ומשלמים'
הקשה לקריאה (TTR) של העוזר הקולי
ב-Automotive, התראות שפורסמו במרכז ההתראות הן התראות שלINBOX
או INBOX_IN_GROUP
(לדוגמה, הודעות SMS)
לכלול לחצן פעולה של Play, שמאפשר למשתמש להקריא את ההודעות.
באמצעות VIA שנבחר, ובאופן אופציונלי, כדי להשיב באמצעות הקול.
איור 5. התראות
מידע נוסף שמסביר איך ליישם את התהליך הזה זמין בכתובת כינוי פקודות להעברת הודעות.
הפעלת VIA ממרכז האפליקציות
כמו כל אפליקציה אחרת, מודעות VIA יכולות לכלול פעילות אחת או יותר במרכז האפליקציות את המניפסט שלהם. מפתח האפליקציה ויצרן ה-OEM (יצרן הציוד המקורי) צריכים להסכים להתקין מראש את האפליקציה הזו כדי להחליט מה הפעילויות האלה יעשו.
חשוב: בכלי רכב, כל הפעילויות, כולל פעילויות
כפופות להגבלות על חוויית המשתמש בזמן הנהיגה. אם החוויה הרצויה
כדי להפעיל מסמל מרכז האפליקציות, חייבים להיות זמינים במהלך הנהיגה, או להוסיף אותו
רשימת ההיתרים (אם אתם יצרני ציוד מקורי) או מוסיפים הערות לפעילות עם distractionOptimized
מטא-נתונים. מידע נוסף זמין במאמר הבא:
הנחיות לגבי הסחות דעת של הנהגים.
DSP ו-HAL של אודיו
חשוב לקרוא את ההנחיות המעודכנות לגבי אודיו שפועל בו-זמנית באופן קבוע הקלטה ואודיו HAL בצילום בו-זמנית. לגישה לממשקי ה-API האלה עשויה להיות השפעה משמעותית על הביצועים של מילת ההפעלה אחר, כמו שמוסבר תגובה ל מילות הפעלה.
הרשאות
הענקת הרשאות עם הרשאות מערכת
בהינתן שהמשתמש לא יכול להעניק הרשאה מוגבלת, אם VIA מצריך עליהם, יצרני ציוד מקורי חייבים לטעון מראש את ה-APK שלהם בתמונות המערכת, ולהעניק את ההרשאות האלה במפורש בפיתוחים שלהם. צפייה בקשה הרשאות.
כדי לעשות זאת, צריך להוסיף לפרויקט תלות ברשימת ההיתרים של ההרשאות:
Android.bp
android_app { ... required: ["privapp_allowlist_com.example.myvoicecontrol"], ... }
הוספת קובץ ההרשאות של הרשאות המערכת לרשימת ההיתרים עבור yourdata/etc/car
תיקייה:
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>
הענקת הרשאות מסוכנות מראש
כפי שמצוין ב-
בקשה
הרשאות, ב-VIA נדרשת הסכמה מהמשתמשים כדי לגשת לפונקציות מסוימות. חלק מאלה
הרשאות ניתנות מראש לברירת המחדל של VoiceInteractionService
(
DefaultPermissionGrantPolicy.java
).
מידע נוסף על הרשאות ל-handlers שמוגדרים כברירת מחדל זמין במאמר
הרשאות
משמשת רק ברכיבי handler שמוגדרים כברירת מחדל. אפשר גם להעניק הרשאות מראש באמצעות default-permissions.xml
קובץ תצורה. לפרטים על
הגבלות על הענקת הרשאות מראש, ראה סעיף 9 ב-Android
מסמך הגדרת תאימות (CDD).
חשוב: בכל המקרים, רק ברירת המחדל של VIA תהיה ההרשאות האלה ניתנו מראש. אם המערכת טוענת מראש יותר מ-VIA אחד, דרך VIA שלא מוגדרת כברירת מחדל חייבת לבקש הרשאות למשתמש באופן מפורש כחלק או במהלך השימוש הראשון.
הפצה (התקנה מראש ופריסה של עדכונים)
סרטוני VIA שהותקנו מראש חייבים להיות זמינים בטווח /product/priv-apps
או
/vendor/priv-apps
מחיצות ותיקיות (למידע נוסף על מחיצות בסקירה כללית של מחיצות ו
פיתוח מוצר
מחיצות קטנות).
במקרה השני, מאחר שניתן לעדכן את מחיצת הספק בנפרד מהמערכת, אפליקציות שמתארחות כאן לא יוכלו לגשת לממשקי ה-API של המערכת באמצעות @הסתרה. אפשר לבצע עדכונים בהתאם למיקום של האפליקציות שהותקנו מראש כ-OTA (מידע נוסף זמין במאמר עדכוני OTA) או דרך האפליקציה מחנות אפליקציות.
התאמה אישית
כפי שצוין ב מושגים שספציפיים לכלי רכב, עקביות וההתאמה האישית של ממשק המשתמש או חוויית המשתמש חשובות יותר בכלי רכב מאשר בכל גורם צורה אחר. כדי להשיג יכולת פעולה הדדית מקסימלית, כדאי להשתמש ב-AAOS מומלץ מאוד ספריית ממשק המשתמש של הרכב. הספרייה הזו כוללת רכיבים ומשאבים שניתן לשלב עם כלי רכב אפליקציות שמותאמות אישית על ידי יצרני ציוד מקורי. כך ניתן לפתח חבילת APK אחת כך שניתן להתאים אישית את ממשק המשתמש שלו לעיצוב של כל דגם רכב.