एकीकरण प्रवाहित होता है

सक्रिय VIA का चयन CarSettings में ManageAssistActivity द्वारा किया जाता है। यह प्रवाह सेटिंग्स स्क्रीन के डिफ़ॉल्ट ऐप्स अनुभाग के भाग के रूप में, PackageInstaller ऐप द्वारा ट्रिगर किया गया है।

सेटिंग्स स्क्रीन पर डिफ़ॉल्ट ऐप्स

चित्र 1. सेटिंग्स स्क्रीन पर डिफ़ॉल्ट ऐप्स

चयनित VIA को सिस्टम में दो तरीकों से प्रदर्शित किया जाता है:

  1. RolesManager सिस्टम सेवा के भाग के रूप में
  2. VoiceInteractionManagerService द्वारा AssistUtils आंतरिक API के माध्यम से।

भूमिका नाम android.app.role.ASSISTANT के साथ RolesManager का उपयोग करके उम्मीदवार VIA की सूची प्राप्त की जा सकती है।

हॉटवर्ड ट्रिगरिंग

एंड्रॉइड हार्डवेयर डीएसपी के शीर्ष पर एक अमूर्त के रूप में ऑलवेज़ऑनहॉटवर्डडिटेक्टर प्रदान करता है। यह हमेशा कम ऊर्जा वाली आवाज पहचान के लिए VoiceInteractionService को वॉयस मॉडल से जोड़ने का एक सुविधाजनक तरीका प्रदान करता है। यह सबसे आम और प्रसिद्ध इंटरेक्शन प्रवाह है, जहां उपयोगकर्ता एक नई बातचीत शुरू करने के लिए वॉयस एप्लिकेशन (वीए) के साथ इंटरैक्ट करने का अनुरोध करता है। इस तरह शुरू किए गए ध्वनि सत्र SHOW_SOURCE_ASSIST_GESTURE flag से पहचाने जाते हैं।

हॉटवर्ड ट्रिगरिंग

चित्र 2. हॉटवर्ड ट्रिगरिंग

दंतकथा। सिस्टम सेवाएँ हल्के नीले रंग में, VIA घटक हरे रंग में दिखाई देते हैं।

पीटीटी ट्रिगरिंग

यह लंबे या छोटे हार्डवेयर बटन प्रेस पर लागू होता है। AAOS में, PTT को CarInputService द्वारा नियंत्रित किया जाता है। डिफ़ॉल्ट कार्यान्वयन में, यह सेवा वाहन एचएएल के माध्यम से प्राप्त इनपुट घटनाओं को संभालती है, और ध्वनि इंटरैक्शन के विशेष मामले में, यह प्रमुख घटनाओं पर निम्नलिखित तर्क लागू करती है:

  • लघु पीटीटी ईवेंट ( KeyEvent.KEYCODE_VOICE_ASSIST ) को एक नया वॉयस सत्र शुरू करने के लिए VoiceInteractionManagerService को निर्देशित किया जाता है।
  • लंबी पीटीटी घटनाओं को पहले प्रोजेक्शन रिसीवर्स (उदाहरण के लिए, एंड्रॉइड ऑटो या कारप्ले) को दिया जाता है, फिर ब्लूटूथ से जुड़े डिवाइसों को और अंत में स्थानीय वीआईए ऐप को दिया जाता है।

इस प्रवाह का उपयोग करके शुरू किए गए सत्रों की पहचान SHOW_SOURCE_PUSH_TO_TALK से की जाती है।

पीटीटी ट्रिगरिंग

चित्र 3. पीटीटी ट्रिगरिंग

AAOS में हार्डवेयर वॉयस-कंट्रोल बटन को एकीकृत करने के लिए, ऑटोमोटिव कुंजी इनपुट एकीकरण देखें।

टैप-टू-टॉक ट्रिगरिंग (या सॉफ़्टवेयर बटन)

सिस्टम यूआई से वॉयस इंटरेक्शन ट्रिगर करना AssistUtil का उपयोग करके किया जाता है। यह एक छिपा हुआ सिस्टम एपीआई है जिसका उपयोग केवल सिस्टम यूआई जैसे बंडल सिस्टम ऐप्स द्वारा किया जा सकता है जो सक्षम बनाता है:

  • ध्वनि नियंत्रण सत्र प्रारंभ करने के लिए VoiceInteractionManagerService के साथ इंटरैक्ट करना।
  • निर्धारित करें कि वर्तमान में चयनित VIA कौन सा है।

चयनित VIA ऐप को गतिशील रूप से प्रस्तुत करने के लिए, सिस्टम UI RoleManager का उपयोग कर सकता है और ROLE_ASSISTANT के लिए भूमिका धारक पर परिवर्तनों का पालन कर सकता है। टीटीटी ट्रिगरिंग को कैसे लागू किया जाए इसका एक उदाहरण CarSystemUI, AssistantButton में पाया जा सकता है।

टैप-टू-टॉक ट्रिगरिंग

चित्र 4. टैप-टू-टॉक ट्रिगरिंग

वॉयस असिस्टेंट टैप-टू-रीड (टीटीआर)

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

सूचनाएं

चित्र 5. सूचनाएं

इस प्रवाह को कार्यान्वित करने के तरीके के बारे में अधिक जानकारी के लिए, हैंडल मैसेजिंग कमांड देखें।

कार लॉन्चर से VIA लॉन्च करें

किसी भी अन्य ऐप की तरह, VIA अपने मेनिफेस्ट में एक या अधिक लॉन्चर गतिविधियों को शामिल कर सकता है। यह ऐप डेवलपर और इस ऐप को प्री-इंस्टॉल करने वाले ओईएम पर निर्भर है कि वे यह तय करें कि ये गतिविधियां क्या करेंगी।

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

डीएसपी और ऑडियो एचएएल

समवर्ती कैप्चर पर समवर्ती हमेशा चालू ऑडियो रिकॉर्डिंग और ऑडियो एचएएल के संबंध में अद्यतन दिशानिर्देशों की समीक्षा करना सुनिश्चित करें। इन एपीआई तक पहुंच हॉटवर्ड पहचान के प्रदर्शन पर महत्वपूर्ण प्रभाव डाल सकती है, जैसा कि हॉटवर्ड्स पर प्रतिक्रिया में बताया गया है।

अनुमतियां

सिस्टम-विशेषाधिकार प्राप्त अनुमतियाँ प्रदान करें

यह देखते हुए कि विशेषाधिकार प्राप्त अनुमति उपयोगकर्ता द्वारा नहीं दी जा सकती है, यदि वीआईए को उनमें से किसी की आवश्यकता है, तो ओईएम को अपने एपीके को अपने सिस्टम छवियों में प्रीलोड करना होगा, और उन अनुमतियों को अपने बिल्ड में स्पष्ट रूप से प्रदान करना होगा। अनुमतियाँ अनुरोध देखें.

ऐसा करने के लिए, अपने प्रोजेक्ट में एक विशेषाधिकार अनुमति सूची निर्भरता जोड़ें:

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 कॉन्फ़िगरेशन फ़ाइल का उपयोग करके अनुमतियाँ पूर्व-अनुदान देना भी संभव है। अनुमतियों को पूर्व-अनुदान देने से संबंधित प्रतिबंधों के विवरण के लिए, एंड्रॉइड संगतता परिभाषा दस्तावेज़ (सीडीडी) में धारा 9 देखें।

महत्वपूर्ण। सभी मामलों में, केवल डिफ़ॉल्ट VIA के पास ये अनुमतियाँ पूर्व-अनुदत्त होंगी। यदि सिस्टम में एक से अधिक VIA प्रीलोडेड हैं, तो गैर-डिफ़ॉल्ट VIA को अपने सेटअप के हिस्से के रूप में या पहले उपयोग के दौरान उपयोगकर्ता से स्पष्ट रूप से अनुमतियों का अनुरोध करना होगा।

वितरण (अपडेट पूर्व-स्थापित और तैनात करें)

पहले से इंस्टॉल किए गए VIAs को /product/priv-apps या /vendor/priv-apps विभाजन और फ़ोल्डर्स के अंतर्गत रहना चाहिए (विभाजन के बारे में अधिक जानकारी यहां देखें विभाजन अवलोकन और उत्पाद विभाजन बनाएं )।

दूसरे मामले में, यह देखते हुए कि विक्रेता विभाजन को सिस्टम से अलग से अपडेट किया जा सकता है, यहां होस्ट किए गए ऐप्स @hide सिस्टम एपीआई तक नहीं पहुंच पाएंगे। पहले से इंस्टॉल किए गए ऐप्स के स्थान के आधार पर, अपडेट को OTA ( OTA अपडेट देखें) के रूप में या ऐप स्टोर से ऐप अपडेट के माध्यम से किया जा सकता है।

अनुकूलन

जैसा कि ऑटोमोटिव-विशिष्ट अवधारणाओं में उल्लेख किया गया है, यूआई/यूएक्स स्थिरता और अनुकूलन ऑटोमोटिव में किसी भी अन्य फॉर्म फैक्टर की तुलना में अधिक महत्वपूर्ण हैं। अधिकतम अंतरसंचालनीयता के लिए, AAOS कार UI लाइब्रेरी के उपयोग की पुरजोर अनुशंसा की जाती है। इस लाइब्रेरी में ऐसे घटक और संसाधन शामिल हैं जिन्हें ओईएम द्वारा अनुकूलित किए जाने के लिए डिज़ाइन किए गए ऑटोमोटिव ऐप्स में एकीकृत किया जा सकता है। इस तरह, एक एकल एपीके को इस तरह से बनाया जा सकता है कि इसके यूआई को प्रत्येक कार मॉडल के डिजाइन के अनुसार अनुकूलित किया जा सके।