इस दस्तावेज़ में बताया गया है कि तीसरे पक्ष (3P) के ऐप्लिकेशन डेवलपर, AAOS मीडिया ऐप्लिकेशन में डीप लिंक कैसे जोड़ सकते हैं. मीडिया डीप लिंक की मदद से, AAOS Media ऐप्लिकेशन को डीप लिंक के ज़रिए उसी तरह खोला जा सकता है जिस तरह मोबाइल डिवाइस पर किया जाता है.
Play Books पर काम करने वाले वर्शन
काम करने वाला सबसे नया वर्शन पाने के लिए, सबसे नए बिल्ड आर्टफ़ैक्ट देखें.
CarMediaApp.apk
TestMediaApp.apk
यह कैसे काम करता है
AAOS पर डीप लिंक खोलने पर, वह मीडिया ऐप्लिकेशन खुलता है जो उस स्कीम को मैनेज करता है. इसके बाद, मीडिया ऐप्लिकेशन उस लिंक में मौजूद जानकारी का इस्तेमाल करके, यूआरएल को डिकोड करता है और मीडिया इंटेंट बनाता है. इसके बाद, मीडिया स्क्रीन खोलने के लिए उस इंटेंट का इस्तेमाल करता है.
नए इंटेंट और नए एक्सट्रा के साथ काम करने के लिए लागू किया गया:
तीसरे पक्ष के डेवलपर को इंटेंट का अपडेट किया गया फ़ॉर्मैट उपलब्ध कराता है, ताकि वे इंटेंट के ज़रिए मीडिया को ज़रूरी जानकारी भेज सकें.
तीसरे पक्ष के ऐसे ऐप्लिकेशन के इंटेंट को मैनेज करता है जिनमें कोई खास मीडिया आइटम या खोज क्वेरी शामिल होती है. इसके बाद, मीडिया में मांगी गई जानकारी वाला पेज खोलता है.
तीसरे पक्ष के डेवलपर को अपने ऐप्लिकेशन को अपडेट करना होगा, ताकि वेब यूआरआई इंटेंट की मदद से ऐप्लिकेशन को शुरू किया जा सके और इंटेंट की मदद से मीडिया को ज़रूरी जानकारी भेजी जा सके.
तीसरे पक्ष के ऐप्लिकेशन के लिए ज़रूरी शर्तें
उदाहरण के तौर पर, TestMediaApp
ऐप्लिकेशन में TmaTrampolineActivity
दिया गया है.
पहला चरण
डेवलपर के पास TestMediaApp
में TmaTrampolineActivity
जैसी गतिविधि होनी चाहिए. डीप लिंक करने के लिए, इस गतिविधि को मेनिफ़ेस्ट में इंटेंट फ़िल्टर की ज़रूरत होती है. इस इंटेंट फ़िल्टर में, इनकमिंग लिंक के लिए इंटेंट फ़िल्टर जोड़ें में बताए गए सभी यूआरएल शामिल होने चाहिए.
हमारा सुझाव है कि इंटेंट फ़िल्टर में वे स्कीम और होस्ट शामिल करें जिनका इस्तेमाल फ़ोन वर्शन वाले ऐप्लिकेशन में किया जाता है. इससे यह पक्का किया जा सकेगा कि डीप लिंक सभी प्लैटफ़ॉर्म पर काम करें.
<activity android:name=".automotive.TmaTrampolineActivity"
android:exported="true">
<intent-filter android:label="TmaTrampolineActivity_label">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="app"
android:host="com.android.car.media.testmediaapp"/>
</intent-filter>
</activity>
दूसरा चरण
इस गतिविधि में, मीडिया ऐप्लिकेशन लिंक से जानकारी हासिल करता है और मीडिया के लिए एक इंटेंट बनाता है.
मीडिया में दो फ़ंक्शन काम करते हैं. पहला फ़ंक्शन, किसी खास मीडिया आइटम के साथ मीडिया आइटम खोलना है और दूसरा, खोज क्वेरी के नतीजे दिखाना है. मीडिया आइटम आईडी या खोज क्वेरी स्ट्रिंग को इंटेंट एक्सट्रा में शामिल करना ज़रूरी है.
इंटेंट की जानकारी
इस सुविधा का इस्तेमाल करने के लिए, डेवलपर को ACTION_MEDIA_TEMPLATE_V2
इंटेंट ऐक्शन के साथ काम करने के लिए, Media का सबसे नया वर्शन इंस्टॉल करना होगा. इंटेंट ऐक्शन और इंटेंट के ये एक्सट्रा, MediaIntentExtras.java
क्लास में शामिल होते हैं. इन अतिरिक्त एलिमेंट को इंटेंट में जोड़ा जा सकता है.
अन्य नाम | वैल्यू | ब्यौरा |
---|---|---|
EXTRA_KEY_MEDIA_COMPONENT | componentName के लिए स्ट्रिंग | इस कुंजी का इस्तेमाल, ACTION_MEDIA_TEMPLATE_V2 के साथ अतिरिक्त स्ट्रिंग फ़ील्ड के तौर पर किया जाता है. इससे, उस MediaBrowserService की जानकारी मिलती है जिस पर उपयोगकर्ता को मीडिया चलाना है. अगर कोई सोर्स नहीं चुना जाता है, तो चालू मीडिया सोर्स खुल जाता है. |
EXTRA_KEY_MEDIA_ID | मीडिया आईडी | ACTION_MEDIA_TEMPLATE_V2 के साथ स्ट्रिंग एक्सट्रा फ़ील्ड के तौर पर इस्तेमाल की जाने वाली कुंजी, उस मीडिया आइटम की जानकारी देती है जिसे ब्राउज़ करें व्यू में दिखाया जाना चाहिए. यह आईडी, MediaBrowserServiceCompat API में इस्तेमाल किए गए आईडी से मैच करना चाहिए. |
EXTRA_KEY_SEARCH_QUERY | खोज क्वेरी | इस कुंजी का इस्तेमाल, ACTION_MEDIA_TEMPLATE_V2 के साथ स्ट्रिंग एक्सट्रा फ़ील्ड के तौर पर किया जाता है. इससे, मौजूदा MediaBrowserService या EXTRA_KEY_MEDIA_COMPONENT के साथ बताई गई सेवा को भेजी जाने वाली खोज क्वेरी तय की जाती है |
EXTRA_KEY_SEARCH_ACTION | पूर्णांक:
|
ACTION_MEDIA_TEMPLATE_V2 के साथ, int एक्सट्रा फ़ील्ड के तौर पर इस्तेमाल की जाने वाली कुंजी
यह बताने के लिए कि खोज क्वेरी लोड होने के बाद, मीडिया को क्या कार्रवाई करनी है.
वैल्यू, EXTRA_VALUE_NO_SEARCH_ACTION या EXTRA_VALUE_PLAY_FIRST_ITEM_FROM_SEARCH में से कोई एक होनी चाहिए. इस एक्सट्रा का इस्तेमाल सिर्फ़ EXTRA_KEY_SEARCH_QUERY के साथ किया जाना चाहिए. अगर इस एक्सट्रा के बारे में नहीं बताया गया है, तो खोज के नतीजे लोड होने के बाद कोई और कार्रवाई नहीं की जाती. |
विशेष मामले
अगर इंटेंट में एक साथ कई एक्सट्रा जोड़े जाते हैं, जैसे कि इस इंटेंट में EXTRA_KEY_MEDIA_ID
और EXTRA_KEY_SEARCH_QUERY
, तो मौजूदा तरीके से पहले मीडिया आईडी को मैनेज किया जाता है. मीडिया, खोज क्वेरी तब ही चलाता है, जब मीडिया आईडी खाली हो.
टेस्ट
तीसरे पक्ष के मीडिया ऐप्लिकेशन का इंटिग्रेशन पूरा होने के बाद, डीप लिंक भेजने के लिए adb
निर्देश का इस्तेमाल करें. मीडिया, ज़रूरी जानकारी के साथ खुल जाएगा. उदाहरण के लिए, TestMediaApp
के लिए यह कमांड:
adb shell am start -W -a android.intent.action.VIEW -d "https://www.testmediaapp.com/path?search=normal\&searchAction=1"