CarSettings में, चालू वीआईए को ManageAssistActivity चुनता है. इस फ़्लो को PackageInstaller ऐप्लिकेशन ट्रिगर करता है. यह सेटिंग स्क्रीन के डिफ़ॉल्ट ऐप्लिकेशन सेक्शन का हिस्सा है.

पहली इमेज. सेटिंग स्क्रीन पर डिफ़ॉल्ट ऐप्लिकेशन
चुने गए वीआईए को सिस्टम में दो तरीकों से दिखाया जाता है:
RolesManagerसिस्टम सेवा के तौर परVoiceInteractionManagerServiceके ज़रिएAssistUtilsइंटरनल एपीआई से.
android.app.role.ASSISTANT भूमिका के नाम के साथ RolesManager का इस्तेमाल करके, वीआईए के तौर पर काम करने वाले लोगों की सूची पाई जा सकती है.
हॉटवर्ड ट्रिगर करना
Android, हार्डवेयर डीएसपी के ऊपर ऐब्स्ट्रैक्शन के तौर पर AlwaysOnHotwordDetector उपलब्ध कराता है. इससे, कम ऊर्जा की खपत करने वाले और हमेशा चालू रहने वाले वॉइस रिकग्निशन के लिए, VoiceInteractionService को वॉइस मॉडल से आसानी से जोड़ा जा सकता है. यह सबसे सामान्य और जाना-माना इंटरैक्शन फ़्लो है. इसमें उपयोगकर्ता, नई बातचीत शुरू करने के लिए वॉइस ऐप्लिकेशन (वीए) के साथ इंटरैक्ट करने का अनुरोध करता है. इस तरह शुरू किए गए वॉइस सेशन की पहचान SHOW_SOURCE_ASSIST_GESTURE flag से होती है.
दूसरी इमेज. हॉटवर्ड ट्रिगर करना
लेजेंड. सिस्टम सेवाएं हल्के नीले रंग में और वीआईए कॉम्पोनेंट हरे रंग में दिखते हैं.
पीटीटी ट्रिगर करना
यह हार्डवेयर बटन को दबाकर रखने या कम समय के लिए दबाने पर लागू होता है. AAOS में, पीटीटी को CarInputService हैंडल करता है. डिफ़ॉल्ट रूप से लागू करने पर, यह सेवा Vehicle HAL से मिले इनपुट इवेंट को मैनेज करती है. साथ ही, बोलकर इंटरैक्ट करने के मामले में, यह मुख्य इवेंट पर यह लॉजिक लागू करती है:
- कम समय के पीटीटी इवेंट (
KeyEvent.KEYCODE_VOICE_ASSIST) कोVoiceInteractionManagerServiceपर भेजा जाता है, ताकि नया वॉइस सेशन शुरू किया जा सके. - लंबे समय तक पीटीटी बटन दबाकर रखने पर होने वाले इवेंट, सबसे पहले प्रोजेक्शन रिसीवर (जैसे, Android Auto या CarPlay) को भेजे जाते हैं. इसके बाद, ब्लूटूथ से कनेक्ट किए गए डिवाइसों को और आखिर में, लोकल वीआईए ऐप्लिकेशन को भेजे जाते हैं.
इस फ़्लो का इस्तेमाल करके शुरू किए गए सेशन को SHOW_SOURCE_PUSH_TO_TALK से पहचाना जाता है.

तीसरी इमेज. पीटीटी ट्रिगर करना
AAOS में हार्डवेयर वॉइस-कंट्रोल बटन को इंटिग्रेट करने के लिए, ऑटोमोटिव की इनपुट इंटिग्रेशन देखें.
बात करने के लिए टैप करें सुविधा को ट्रिगर करना (या सॉफ़्टवेयर बटन)
सिस्टम यूज़र इंटरफ़ेस (यूआई) से वॉइस इंटरैक्शन को ट्रिगर करने के लिए, AssistUtil का इस्तेमाल किया जाता है. यह एक छिपा हुआ सिस्टम एपीआई है. इसका इस्तेमाल सिर्फ़ बंडल किए गए सिस्टम ऐप्लिकेशन कर सकते हैं. जैसे, सिस्टम यूज़र इंटरफ़ेस (यूआई). यह इन कामों को पूरा करने में मदद करता है:
- आवाज़ से कंट्रोल करने की सुविधा शुरू करने के लिए,
VoiceInteractionManagerServiceसे इंटरैक्ट करना. - यह पता लगाना कि फ़िलहाल कौनसी वीआईए चुनी गई है.
चुने गए वीआईए ऐप्लिकेशन को डाइनैमिक तरीके से दिखाने के लिए, सिस्टम यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल कर सकता है. साथ ही, के लिए भूमिका निभाने वाले व्यक्ति के बदलावों को फ़ॉलो कर सकता है.RoleManagerROLE_ASSISTANT
TTT ट्रिगर करने के तरीके का उदाहरण, CarSystemUI, AssistantButton में देखा जा सकता है.

चौथी इमेज. 'बोलने के लिए टैप करें' सुविधा को ट्रिगर करना
वॉइस असिस्टेंट की 'टैप करके सुनें' (टीटीआर) सुविधा
ऑटोमोटिव में, सूचना केंद्र में पोस्ट की गई सूचनाओं कोINBOX या INBOX_IN_GROUP सूचनाओं के तौर पर पहचाना जाता है. उदाहरण के लिए, एसएमएस मैसेज. इनमें 'पढ़कर सुनाएं' बटन शामिल होता है. इससे उपयोगकर्ता, चुनी गई वीआईए से सूचनाएं पढ़कर सुन सकता है. इसके अलावा, वह चाहें, तो आवाज़ से जवाब भी दे सकता है.

पांचवीं इमेज. सूचनाएं
इस फ़्लो को लागू करने के तरीके के बारे में ज़्यादा जानने के लिए, मैसेजिंग कमांड मैनेज करना लेख पढ़ें.
कार लॉन्चर से VIA लॉन्च करना
किसी भी अन्य ऐप्लिकेशन की तरह, VIA भी अपने मेनिफ़ेस्ट में एक या उससे ज़्यादा लॉन्चर ऐक्टिविटी शामिल कर सकते हैं. ऐप्लिकेशन डेवलपर और ओईएम यह तय करते हैं कि ये गतिविधियां क्या करेंगी. ओईएम, इस ऐप्लिकेशन को पहले से इंस्टॉल करने की अनुमति देता है.
अहम जानकारी. Automotive में, ड्राइविंग के दौरान यूज़र एक्सपीरियंस से जुड़ी पाबंदियां लागू होती हैं. इनमें सिस्टम से जुड़ी गतिविधियां भी शामिल हैं. अगर आपको लॉन्चर आइकॉन से कोई ऐसी सुविधा चालू करनी है जिसे ड्राइविंग के दौरान इस्तेमाल किया जा सकता है, तो उसे अनुमति वाली सूची में जोड़ें. ऐसा सिर्फ़ OEM कर सकते हैं. इसके अलावा, ऐक्टिविटी को distractionOptimized मेटाडेटा के साथ एनोटेट करें. ज़्यादा जानकारी के लिए, ड्राइवर का ध्यान भटकाने वाले ऐप्लिकेशन से जुड़े दिशा-निर्देश देखें.
डीएसपी और ऑडियो एचएएल
एक साथ कई ऑडियो कैप्चर करने की सुविधा के बारे में जानने के लिए, एक साथ कई ऑडियो कैप्चर करना लेख पढ़ें. इसमें, हमेशा चालू रहने वाली ऑडियो रिकॉर्डिंग और ऑडियो एचएएल से जुड़े अपडेट किए गए दिशा-निर्देशों के बारे में बताया गया है. इन एपीआई का ऐक्सेस मिलने से, हॉटवर्ड का पता लगाने की सुविधा की परफ़ॉर्मेंस पर काफ़ी असर पड़ सकता है. इसके बारे में हॉटवर्ड का जवाब देना लेख में बताया गया है.
अनुमतियां
सिस्टम से जुड़ी खास अनुमतियां देना
उपयोगकर्ता, खास अनुमति नहीं दे सकता. इसलिए, अगर किसी वीआईए को इनमें से किसी भी अनुमति की ज़रूरत है, तो ओईएम को अपने सिस्टम इमेज में अपना 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 देखें). डिफ़ॉल्ट हैंडलर के लिए अनुमतियों के बारे में ज़्यादा जानने के लिए, डिफ़ॉल्ट हैंडलर में इस्तेमाल की जाने वाली अनुमतियां देखें. default-permissions.xml
कॉन्फ़िगरेशन फ़ाइल का इस्तेमाल करके, अनुमतियां पहले से दी जा सकती हैं. अनुमतियां पहले से देने से जुड़ी पाबंदियों के बारे में जानने के लिए, Android
Compatibility Definition Document (CDD) में सेक्शन 9 देखें.
अहम जानकारी. सभी मामलों में, सिर्फ़ डिफ़ॉल्ट वीआईए के पास ये अनुमतियां पहले से मौजूद होंगी. अगर सिस्टम में एक से ज़्यादा वीआईए पहले से लोड हैं, तो डिफ़ॉल्ट वीआईए के अलावा अन्य वीआईए को सेटअप के दौरान या पहली बार इस्तेमाल करते समय, उपयोगकर्ता से साफ़ तौर पर अनुमतियों का अनुरोध करना होगा.
डिस्ट्रिब्यूशन (पहले से इंस्टॉल करना और अपडेट डिप्लॉय करना)
पहले से इंस्टॉल किए गए वीआईए, /product/priv-apps या /vendor/priv-apps पार्टिशन और फ़ोल्डर में होने चाहिए. पार्टिशन के बारे में ज़्यादा जानने के लिए, पार्टिशन की खास जानकारी और प्रॉडक्ट पार्टिशन बनाना पर जाएं.
दूसरे मामले में, वेंडर पार्टीशन को सिस्टम से अलग अपडेट किया जा सकता है. इसलिए, यहां होस्ट किए गए ऐप्लिकेशन, @hide सिस्टम एपीआई को ऐक्सेस नहीं कर पाएंगे. पहले से इंस्टॉल किए गए ऐप्लिकेशन की जगह के आधार पर, अपडेट को OTA (OTA अपडेट देखें) के तौर पर या किसी ऐप्लिकेशन स्टोर से ऐप्लिकेशन अपडेट के ज़रिए किया जा सकता है.
पसंद के मुताबिक बनाएं
ऑटोमोटिव से जुड़े कॉन्सेप्ट में बताया गया है कि ऑटोमोटिव में, यूज़र इंटरफ़ेस (यूआई)/उपयोगकर्ता अनुभव (यूएक्स) में एकरूपता और उसे पसंद के मुताबिक बनाने की सुविधा, किसी अन्य फ़ॉर्म फ़ैक्टर की तुलना में ज़्यादा ज़रूरी होती है. ज़्यादा से ज़्यादा इंटरऑपरेबिलिटी के लिए, AAOS Car UI library का इस्तेमाल करने का सुझाव दिया जाता है. इस लाइब्रेरी में ऐसे कॉम्पोनेंट और संसाधन शामिल हैं जिन्हें ऑटोमोटिव ऐप्लिकेशन में इंटिग्रेट किया जा सकता है. इन ऐप्लिकेशन को ओईएम के हिसाब से बनाया जाता है. इस तरह, एक APK को इस तरह से बनाया जा सकता है कि उसके यूज़र इंटरफ़ेस (यूआई) को हर कार मॉडल के डिज़ाइन के हिसाब से पसंद के मुताबिक बनाया जा सके.