नीचे दिया गया डायग्राम, मीडिया के साथ इंटरैक्ट करने वाले कॉम्पोनेंट को दिखाता है:
पहला डायग्राम. सिस्टम के कॉम्पोनेंट
इस इमेज में मौजूद एलिमेंट की जानकारी टेबल में दी गई है:
कॉम्पोनेंट | ब्यौरा |
---|---|
होम स्क्रीन | यह कार के यूज़र इंटरफ़ेस (यूआई) में अन्य प्लैटफ़ॉर्म दिखाता है, जो कि मौजूदा समय में चल रहे गेम को दिखाते और कंट्रोल करते हैं मीडिया. एओएसपी में, यह सिस्टम शुरू होने पर मुख्य स्क्रीन दिखती है. इस स्क्रीन से, इस सुविधा का इस्तेमाल करके, लोग चलाए जा रहे मीडिया आइटम की जानकारी देख सकते हैं. साथ ही, सीमित स्टैंडर्ड का इस्तेमाल भी कर सकते हैं और कस्टम ऐक्शन (उदाहरण के लिए, चलाएं और रोकें) के लिए उपलब्ध है. |
सिस्टम यूआई | ऐसी सुविधा देता है जिसमें ग्लोबल यूज़र इंटरफ़ेस (यूआई) नेविगेशन के विकल्प शामिल हैं. जैसे, तक नेविगेट करना मीडिया. |
असिस्टेंट | Android, आवाज़ से डिवाइस का इस्तेमाल करने वाले अलग-अलग ऐप्लिकेशन को सिस्टम के साथ इंटरैक्ट करने का तरीका उपलब्ध कराता है. ये ऐप्लिकेशन बैकग्राउंड में मीडिया स्रोतों के साथ इंटरैक्ट कर सकते हैं (उदाहरण के लिए, किसी बोलकर निर्देश देने की वजह से गाना सुनना शुरू करें या फ़ोरग्राउंड में मीडिया पर जाएं (उदाहरण के लिए, जब वॉइस असिस्टेंट ऐप्लिकेशन को किसी खास मीडिया सोर्स के यूज़र इंटरफ़ेस (यूआई) को दिखाने का निर्देश दिया जाता है). |
ऐप्लिकेशन लॉन्चर | सभी Android ऐप्लिकेशन, ऐप्लिकेशन लॉन्चर में शुरू होते हैं. इनमें मीडिया सोर्स भी शामिल हैं. मीडिया यह कर सकता है अपना मीडिया सोर्स सिलेक्टर, ऐप्लिकेशन लॉन्चर के साथ मिलकर मीडिया को खोजने की शुरुआती जगह. |
Google Play Store | GAS का इस्तेमाल करते समय, उपयोगकर्ता Android डिवाइस. मीडिया के लिए, ऐप्लिकेशन इंस्टॉल होने के बाद, उपयोगकर्ताओं को मीडिया पर साइन-इन करने या ऐप्लिकेशन से इंटरैक्ट करने के लिए. |
मीडिया सेशन मैनेजर | Android सिस्टम सेवा, जो सभी मीडिया सोर्स के मीडिया सेशन को ट्रैक और कंट्रोल करती है. यह ऐसे तरीके उपलब्ध कराता है जिनसे यह पता लगाया जा सकता है कि कोई मीडिया सोर्स, फ़ोरग्राउंड मीडिया कब बनता है स्रोत. मीडिया और ऐसे सभी ऐप्लिकेशन जो फ़िलहाल चल रहे मीडिया का सोर्स दिखाते हैं (इनकी उदाहरण के लिए, होम स्क्रीन), मीडिया सेशन मैनेजर का इस्तेमाल करके इन इवेंट का पता लगाएं और यूज़र इंटरफ़ेस (यूआई) अपडेट करें उसी के हिसाब से. मीडिया स्रोत मीडिया सेशन एपीआई. |
रेडियो | रेडियो हार्डवेयर के साथ इंटरैक्ट करने के लिए खास ऐप्लिकेशन. रेडियो के लिए रेडियो की खोज स्टेशन, हाल ही में पहचाने गए स्टेशन को तेज़ी से चुनकर, और रेडियो बैंड के बीच स्विच करते समय. रेडियो और मीडिया दोनों के ज़रिए शेयर किए गए यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट, उपयोगकर्ता को दोनों के बीच स्विच करने में मदद करते हैं अनुभव. |
ड्राइवर डिस्ट्रैक्शन इंजन | Android सिस्टम सर्विस का इस्तेमाल, उपयोगकर्ता अनुभव से जुड़ी पाबंदियां लागू करने के लिए किया जाता है. यह पाबंदी इस बात पर निर्भर करती है कि किस स्थिति में गाड़ी चल रही है कार. मीडिया सोर्स के लिए साइन-इन करने और उपयोगकर्ता अनुभव की सेटिंग के लिए (जहां स्क्रीन को सीधे मीडिया सोर्स), यह सेवा पक्का करती है कि कार में कोई असुरक्षित कॉन्टेंट न दिखे ड्राइविंग स्थिति में. OEM, इन राज्यों की परिभाषा और सिस्टम में अपने हिसाब से बदलाव कर सकते हैं इन स्थितियों में प्रतिक्रिया देता है. उदाहरण के लिए, स्क्रीन को ब्लॉक करने वाला ओवरले दिखाना. |
यूज़र फ़्लो
मीडिया ऐप्लिकेशन लॉन्च किया गया
मीडिया को लॉन्च करने की प्रक्रिया नीचे दिखाई गई है.
दूसरा डायग्राम. मीडिया ऐप्लिकेशन लॉन्च किया गया
मीडिया को नीचे दिए गए इंप्लिसिट का इस्तेमाल करके लॉन्च किया जाना चाहिए
CAR_INTENT_ACTION_MEDIA_TEMPLATE
.
इस इंटेंट में नीचे दी गई जानकारी, अतिरिक्त के तौर पर हो सकती है:
-
android.car.intent.extra.MEDIA_COMPONENT
(ज़रूरी नहीं). अतिरिक्त स्ट्रिंग किसी खास एलिमेंट के चपटे कॉम्पोनेंट का नाम दिखाने के लिएMediaBrowserService
जिस मीडिया ऐप्लिकेशन से कनेक्ट करना है. अगर यह पैरामीटर उपलब्ध नहीं कराया जाता, तो मीडिया फ़िलहाल चुना गया मीडिया ऐप्लिकेशन. इस इंटेंट का इस्तेमाल यहां दिए गए सोर्स से किया जाता है एंट्री पॉइंट:-
सिस्टम यूआई. इसका इस्तेमाल, मीडिया अनुभव पर वापस जाने या शुरू करने के लिए किया जाता है पहली बार इस्तेमाल किया है. इस मामले में, ऊपर दिए गए इंटेंट को किसी ताकि मीडिया, चुने गए मीडिया ऐप्लिकेशन को दिखा सके.
-
होम स्क्रीन, Assistant, और सूचना केंद्र. उपयोगकर्ता ये काम कर सकते हैं: चुने गए मीडिया ऐप्लिकेशन को देखने के लिए, मीडिया पर जाएं. सभी मामलों में, अतिरिक्त के बिना इंप्लिसिट इंटेंट ट्रिगर हो जाता है.
-
ऐप्लिकेशन लॉन्चर. जब उपयोगकर्ता किसी मीडिया ऐप्लिकेशन को ऐप्लिकेशन लॉन्चर, ऊपर दिए गए इंटेंट में शामिल है
CAR_EXTRA_MEDIA_COMPONENT
अतिरिक्त, जिसमें चुना गया मीडिया ऐप्लिकेशन शामिल होता है. मीडिया इसे नया चुना गया ऐप्लिकेशन और उससे कनेक्ट करता है. ज़्यादा जानकारी के लिए, नीचे दिया गया ऐप्लिकेशन देखें लॉन्चर से मीडिया इंटिग्रेशन.
-
ऐप्लिकेशन लॉन्चर से मीडिया इंटिग्रेशन
मीडिया ऐप्लिकेशन को ऐसी कोई भी गतिविधि देने की अनुमति नहीं है जो
android.intent.category.LAUNCHER
कैटगरी. इस वजह से, ऐप्लिकेशन लॉन्चर (या इसके
के बराबर है) को मीडिया सोर्स इंटिग्रेशन का इस्तेमाल करने के लिए खास लॉजिक लागू करना होगा:
-
ऐप्लिकेशन लॉन्चर को पैकेज लागू करने के लिए, सिस्टम को स्कैन करना होगा
MediaBrowserService.SERVICE_INTERFACE
. इन पैकेज के लिए, ऐप्लिकेशन लॉन्चर उसी सेवा आइकॉन को फ़ेच करता है जिसका इस्तेमाल दूसरे पैकेज फ़ेच करने के लिए किया जाता है गतिविधियां. -
इसके बाद, ऐप्लिकेशन लॉन्चर इन पैकेज को लागू करने वाले पैकेज के साथ जोड़ता है
android.intent.category.LAUNCHER
गतिविधियां. अगर कोई ऐप्लिकेशन,MediaBrowserService
लागू करने की सुविधा और लॉन्चर गतिविधि, प्राथमिकता.इस लिखा जाने तक, कोई भी मीडिया सोर्स ऐप्लिकेशन लॉन्चर गतिविधि उपलब्ध नहीं करा सकता.
- इस लॉजिक का उदाहरण एओएसपी कोड में यहां दिया गया है:
AppLauncherUtils#getAllLauncherApps()
.
साइन-इन फ़्लो और कॉन्फ़िगरेशन के विकल्प
मीडिया ऐप्लिकेशन में, वाहन के लिए ऑप्टिमाइज़ की गई सेटिंग की गतिविधि शामिल हो सकती है. इस तरह की गतिविधि के लिए, आपके पास उन यूज़र फ़्लो को लागू करने के लिए इस्तेमाल किया जाता है जिन्हें Android Media API में शामिल नहीं किया जाता. उदाहरण के लिए:
- साइन इन करना
- साइन-आउट करें
- खाता स्विच करना
- वह डिसप्ले जिसमें उपयोगकर्ता ने फ़िलहाल लॉग इन किया हुआ है (अगर कोई हो)
- सेवा कॉन्फ़िगरेशन
तीसरी इमेज. साइन-इन फ़्लो
इस सेटिंग गतिविधि को मीडिया ऐप्लिकेशन नीचे दिए गए इंटेंट फ़िल्टर के साथ एलान करता है:
<activity android:name=".AppSettingsActivity" android:exported="true android:theme="@style/SettingsActivity" android:label="@string/app_settings_activity_title"> <intent-filter> <action android:name="android.intent.action.APPLICATION_PREFERENCES"/> </intent-filter> </activity>
मीडिया को यह लॉजिक लागू करना होगा:
-
देखें कि हाल ही में चुने गए मीडिया ऐप्लिकेशन में, दी गई जानकारी के साथ कोई गतिविधि शामिल है या नहीं इंटेंट फ़िल्टर.
-
अगर ऐसा है, तो उपयोगकर्ता को गतिविधि पर जाने की अनुमति दें.
-
अगर कार के लिए उपयोगकर्ता अनुभव से जुड़ी पाबंदियां लागू हैं, जैसे कि कार को एक जगह से दूसरी जगह ले जाना, तो यह खर्च बंद की जा सकती है, क्योंकि सेटिंग गतिविधि, ड्राइवर के लिए ऑप्टिमाइज़ किया गया यूज़र इंटरफ़ेस (यूआई) नहीं है.
गड़बड़ी ठीक करना और साइन-इन करना ज़रूरी है
मीडिया, Android Media Session API की मदद से, मीडिया ऐप्लिकेशन के साथ इंटरैक्ट करता है. इसके तहत
एपीआई, मीडिया को
PlaybackState
ऑब्जेक्ट की मदद से, मीडिया ऐप्लिकेशन की मौजूदा स्थिति के बारे में पता चलता है.
मीडिया ऐप्लिकेशन में बदलाव होने पर, साइन इन करने की प्रोसेस शुरू हो जाती है
PlaybackState
से
STATE_ERROR
,
जिसमें गड़बड़ी का खास कोड शामिल है (नीचे जानकारी देखें). जब यह
ऐसा करने पर, मीडिया गड़बड़ी का ब्यौरा दिखाता है. साथ ही, साइन-इन करने की गतिविधि को नेविगेट करने का विकल्प दिखाता है
मीडिया ऐप्लिकेशन ने लागू किया.
ऐप्लिकेशन, इसी फ़्लो का इस्तेमाल गड़बड़ी की दूसरी स्थितियों के बारे में बताने के लिए कर सकते हैं. उदाहरण के लिए, सर्वर कनेक्टिविटी की गड़बड़ी).
चौथी इमेज. गड़बड़ी ठीक करना
PlaybackState
गड़बड़ी ठीक करने के सामान्य तरीके के तौर पर, मीडिया को इन इनपुट की जांच करनी होगी.
-
PlaybackState
गड़बड़ी कोड इसके बराबर हैPlaybackStateCompat#ERROR_CODE_AUTHENTICATION_EXPIRED
. यह सिग्नल कि मीडिया ऐप्लिकेशन का काम जारी रखने के लिए साइन-इन करना ज़रूरी है. अन्य गड़बड़ी कोड मिला हो. इससे गड़बड़ी वाली दूसरी तरह की स्थितियों के बारे में पता चलता है. -
PlaybackState
गड़बड़ी का मैसेज (यह मैसेज उन मीडिया ऐप्लिकेशन ने सेट किया है जो इनका इस्तेमाल करते हैंPlaybackStateCompat.Builder#setErrorMessage
तरीका) में शामिल इस बारे में जानकारी कि उपयोगकर्ता इसे आसानी से पढ़ सकें. उदाहरण के लिए, "आपने साइन इन नहीं किया है." यह मैसेज इस पर दिखाया जाना चाहिए: ध्यान रहे कि इसके इस्तेमाल से ध्यान भटकाने वाली चीज़ों को ऑप्टिमाइज़ किया गया हो (DO). -
विकल्प के तौर पर,
PlaybackState
में यहां दी गई अतिरिक्त सुविधाएं भी शामिल की जा सकती हैं. ये सुविधाएं मीडिया की मदद से सेट की जाती हैंPlaybackStateCompat.Builder#setExtras
वाले ऐप्लिकेशन विधि) के साथ नीचे दी गई कुंजी का इस्तेमाल करें.-
android.media.extras.ERROR_RESOLUTION_ACTION_LABEL
. ऐसी स्ट्रिंग पर सेट करें जो इसमें ऐसा मैसेज शामिल होता है जिसे कोई भी व्यक्ति आसानी से पढ़ सकता है. यह मैसेज उस बटन पर दिखाया जाता है जिसे शुरू करने के लिए उपयोगकर्ता टच करता है साइन-इन फ़्लो. -
android.media.extras.ERROR_RESOLUTION_ACTION_INTENT
. इससे सेट करें:PendingIntent
यह तब ट्रिगर होता है, जब उपयोगकर्ता ऊपर बताए गए बटन पर क्लिक करता है. यहPendingIntent
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है उसी मीडिया ऐप्लिकेशन की ओर से लागू की गई पसंद के मुताबिक बनाई गई साइन-इन गतिविधि के बारे में बताता है.
-
-
PlaybackState
राज्य इसके बराबर हैSTATE_ERROR
. इससे पता चलता है कि जब तक साइन इन नहीं हो जाता, तब तक कोई और कार्रवाई नहीं की जा सकती.