AppCard होस्ट को कॉन्फ़िगर करना

ऐप्लिकेशन कार्ड दिखाने वाले ऐप्लिकेशन से बातचीत करने के लिए, AppCardHost का इस्तेमाल करें.

अनुमतियां

AppCardHost का इस्तेमाल करने वाले किसी भी ऐप्लिकेशन के पास ये अनुमतियां होनी चाहिए:

  • android.permission.INTERACT_ACROSS_USERS_FULL
  • android.permission.QUERY_ALL_PACKAGES
  • (सिर्फ़ एपीआई लेवल 34 और उसके बाद के वर्शन में) android.car.permission.BIND_APP_CARD_PROVIDER

शुरू करें

होस्ट को शुरू करने के लिए, यह जानकारी दें:

  • संदर्भ
  • updateRate AppCard के अपडेट होने की दर, मिलीसेकंड में.
  • fastUpdateRate EnforceFastUpdateRate से टैग किए गए कॉम्पोनेंट के लिए, अपडेट रेट को मिलीसेकंड में दिखाना
  • responseExecutor वह थ्रेड जिस पर आपको AppCard ऐप्लिकेशन से जवाब चाहिए.

डिज़ाइन

AppCardHost के साथ इनमें से किसी एक तरीके से इंटरैक्ट किया जा सकता है:

  • AppCardListener के तौर पर रजिस्टर करना

या

AppCardListener

AppCardListener कॉम्पोनेंट, AppCardHost और AppCard ऐप्लिकेशन से कम्यूनिकेशन से जुड़े अपडेट पाने के लिए, AppCardHost के साथ रजिस्टर करता है. AppCardListener के इंटरफ़ेस फ़ंक्शन के बारे में यहां बताया गया है.

fun onAppCardReceived(AppCardContainer)

यह फ़ंक्शन तब ट्रिगर होता है, जब किसी ऐप्लिकेशन से ऐप्लिकेशन कार्ड मिलता है. इसे AppCardContainer के तौर पर भेजा जाता है, जो ऐप्लिकेशन कार्ड और appIdentifier उपलब्ध कराता है. इससे, ऐप्लिकेशन कार्ड भेजने वाले ऐप्लिकेशन की पहचान की जा सकती है

fun onComponentReceived(AppCardComponentContainer)

यह फ़ंक्शन तब ट्रिगर होता है, जब किसी ऐप्लिकेशन से ऐप्लिकेशन कार्ड कॉम्पोनेंट मिलता है. इसे AppCardComponentContainer के तौर पर भेजा जाता है. यह ऐप्लिकेशन कार्ड भेजने वाले ऐप्लिकेशन की पहचान करने के लिए, ऐप्लिकेशन कार्ड कॉम्पोनेंट Identifier उपलब्ध कराता है. साथ ही, उस ऐप्लिकेशन कार्ड पर ले जाने के लिए स्ट्रिंग आईडी भी उपलब्ध कराता है जिससे कॉम्पोनेंट जुड़ा है.

fun onProviderRemoved(String, String?)

यह फ़ंक्शन तब ट्रिगर होता है, जब ऐप्लिकेशन कार्ड की सेवा देने वाली कंपनी को हटाया गया हो या बंद किया गया हो. दिए गए पैकेज के नाम और सेवा देने वाली कंपनी की अनुमति से जुड़े किसी भी ऐक्टिव ऐप्लिकेशन कार्ड को हटाने के लिए, इस तरीके का इस्तेमाल करें.

अगर अनुमति {@code null} है, तो इसका मतलब है कि पूरा पैकेज हटा दिया गया है.

fun onProviderAdded(String, String?)

यह फ़ंक्शन तब ट्रिगर होता है, जब ऐप्लिकेशन कार्ड की सेवा देने वाली कोई कंपनी जोड़ी जाती है या फिर सेवा चालू की जाती है.

इस्तेमाल के उदाहरण. इस फ़ंक्शन को ट्रिगर के तौर पर इस्तेमाल करके, ऐप्लिकेशन कार्ड पिकर में मौजूद सभी ऐप्लिकेशन कार्ड रीफ़्रेश करें. अगर अनुमति {@code null} है, तो पूरा पैकेज जोड़ा गया है.

fun onPackageCommunicationError(appIdentifier, Throwable)

यह फ़ंक्शन तब ट्रिगर होता है, जब AppCardHost को AppCard की सेवा देने वाली कंपनी से संपर्क करने में कोई गड़बड़ी मिलती है.

इस्तेमाल के उदाहरण. इस तरीके का इस्तेमाल करके, उपयोगकर्ता को यह दिखाएं कि चुने गए AppCard में कोई गड़बड़ी हुई है.

API

fun refreshCompatibleapp()

जब भी होस्ट का इस्तेमाल करने वाली गतिविधि फिर से शुरू की जाती है, तब इस तरीके को कॉल किया जाना चाहिए. इससे होस्ट, उन ऐप्लिकेशन की सूची को रीफ़्रेश कर सकता है जो AppCards के साथ काम करते हैं.

fun destroy()

जब होस्ट का इस्तेमाल करने वाली कोई गतिविधि खत्म हो जाती है, तो इस तरीके को कॉल करें. इससे होस्ट, सभी कनेक्शन और इंटरनल सदस्यों को हटा सकता है.

fun registerListener(AppCardListener)

AppCardListener को रजिस्टर करने के लिए इस्तेमाल किया जाता है.

fun unregisterListener(AppCardListener)

AppCardListener को अनरजिस्टर करने के लिए इस्तेमाल किया जाता है.

fun getAllAppCards(AppCardContext)

रजिस्टर किए गए AppCardListener को सिस्टम में दिए गए सभी ऐप्लिकेशन कार्ड के साथ देने के लिए, इस तरीके को कॉल करें. साथ ही, AppCardContext का इस्तेमाल करके, सेवा देने वाली कंपनियों को अपने ऐप्लिकेशन कार्ड को स्ट्रक्चर करने के तरीके के बारे में अहम जानकारी दें.

fun requestAppCard(AppCardContext, appIdentifier, String)

रजिस्टर किए गए AppCardListener को किसी खास ऐप्लिकेशन कार्ड की जानकारी देने के लिए, इस तरीके का इस्तेमाल करें. इसके लिए, AppCardContext का इस्तेमाल करें, जो सेवा देने वाली कंपनियों को अपने ऐप्लिकेशन कार्ड को स्ट्रक्चर करने का तरीका बताता है.

fun notifyAppCardRemoved(appIdentifier, String)

ऐप्लिकेशन कार्ड की सेवा देने वाली कंपनी को सूचना दें कि उसका ऐप्लिकेशन कार्ड अब चालू नहीं है.

fun notifyAppCardInteraction(appIdentifier, String, String, String)

ऐप्लिकेशन कार्ड की सेवा देने वाली कंपनी को सूचना देना कि उसके ऐप्लिकेशन कार्ड से इंटरैक्ट किया गया है. सिर्फ़ बटन क्लिक वाला इंटरैक्शन काम करता है. इसे AppCardMessageConstants.InteractionMessageConstants.MSG_INTERACTION_ON_CLICK से दिखाया जाता है.

हमारा सुझाव है कि आप ऐप्लिकेशन कार्ड के लिए एक बटन बनाएं. इसमें onClick लिसनर का इस्तेमाल करें, जो appIdentifier, ऐप्लिकेशन कार्ड आईडी, कॉम्पोनेंट आईडी, और इंटरैक्शन आईडी के साथ इस फ़ंक्शन को कॉल करता है.

fun sendAppCardContextUpdate(AppCardContext, appIdentifier, String)

किसी खास ऐप्लिकेशन कार्ड के लिए AppCardContext अपडेट भेजें. उदाहरण के लिए, पार्क मोड से ड्राइव मोड पर स्विच करते समय, इस तरीके का इस्तेमाल करके AppCardContext अपडेट भेजें. इसमें हर ऐक्टिव ऐप्लिकेशन कार्ड के लिए, isInteractable को false पर सेट किया गया हो.

अक्सर पूछे जाने वाले सवाल

  1. मुझे लागू करने के सैंपल कहां मिल सकते हैं?

    • होस्ट का सैंपल. यह टैब, सिस्टम में मौजूद सभी ऐप्लिकेशन कार्ड के साथ-साथ, जांच करने की सुविधाओं को दिखाता है.

    • DriverUI और Pano manager. Pano मैनेजर, पिकर के तौर पर काम करता है, जबकि DriverUI, प्रज़ेंटर के तौर पर काम करता है.

  2. हर AppCardContentProvider में कितने ऐप्लिकेशन कार्ड जोड़े जा सकते हैं?

    AppCardContentProvider में अनगिनत ऐप्लिकेशन कार्ड इस्तेमाल किए जा सकते हैं. हालांकि, यह पक्का करें कि ऐप्लिकेशन कार्ड की संख्या, उपयोगकर्ता अनुभव को बेहतर बनाने के लिए तय की गई संख्या के हिसाब से हो.