लाइव कार्ड

एपीआई लेवल XE12 में जोड़ा गया
पब्लिक क्लास

लाइव कार्ड

इस कक्षा से आप ऐक्टिव कार्ड बना सकते हैं और उन्हें टाइमलाइन पर प्रकाशित कर सकते हैं.

लाइव कार्ड बनाने के बारे में ज़्यादा जानकारी के लिए, लाइव कार्ड डेवलपर गाइड देखें.

लाइव कार्ड कितने समय तक काम करेगा

लाइव कार्ड में, अपने पब्लिश होने के दौरान ही, उन पर लंबे समय का मालिकाना हक होना ज़रूरी है. इसलिए, आपको उनका बैकग्राउंड Service में मैनेज करना चाहिए. इसके बाद, लाइव कार्ड पब्लिश किया जा सकता है. ऐसा, इवेंट शुरू होने के बाद या सेवा की निगरानी वाले अन्य इवेंट के जवाब में किया जा सकता है. इसी तरह, जब कार्ड काम के न हों या जब सेवा बंद की गई हो, तब आपको उन्हें अनपब्लिश कर देना चाहिए.

लाइव कार्ड पब्लिश करते समय, आपके पास यह चुनने का विकल्प होता है कि इससे उपयोगकर्ताओं पर क्या असर पड़ेगा. बिना सूचना के प्रकाशित करने पर, कार्ड को टाइमलाइन में शामिल कर लिया जाएगा. इसके लिए, उपयोगकर्ताओं को कोई कार्ड नहीं दिखेगा: उपयोगकर्ता उस कार्ड पर स्वाइप कर सकते हैं. लाइव कार्ड के पब्लिश होने के तुरंत बाद, उसे अपने-आप दिखाया जा सकता है. यह अक्सर तब काम आता है, जब आपके ऐप्लिकेशन का मुख्य यूज़र इंटरफ़ेस लाइव कार्ड होता है, न कि कोई गतिविधि.

लाइव कार्ड पर कॉन्टेंट दिखाना

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

रिमोट व्यू की मदद से, लेआउट को इनफ़्लेट करना

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

     LiveCard liveCard; // initialized elsewhere
     RemoteViews views = new RemoteViews(context.getPackageName(),
             R.layout.my_layout);
     liveCard.setViews(views);
 

ध्यान दें कि RemoteViews का इस्तेमाल करने वाला कार्ड प्रकाशित होने के बाद, set* में कॉल करने की सुविधा से किए गए बदलाव टाइमलाइन में नहीं दिखेंगे. ऐसा तब तक नहीं होगा, जब तक आप अपडेट को ज़बरदस्ती लागू करने के लिए लाइव कार्ड पर setViews को फिर से कॉल न करें.

सीधे लाइव कार्ड वाले प्लैटफ़ॉर्म पर ड्रॉइंग बनाना

अगर आपके ऐप्लिकेशन को बार-बार अपडेट करना पड़ता है या सामान्य विजेट की तुलना में ज़्यादा ब्यौरे वाले ग्राफ़िक रेंडर करने होते हैं, तो डायरेक्ट रेंडरिंग चालू करें और कार्ड के प्लैटफ़ॉर्म पर SurfaceHolder.Callback जोड़ें.

     LiveCard liveCard; // initialized elsewhere
     liveCard.setDirectRenderingEnabled(true);
     liveCard.getSurfaceHolder().addCallback(callback);
 

इसके बाद, बैकग्राउंड थ्रेड में या बाहरी इवेंट (उदाहरण के लिए, सेंसर या जगह के अपडेट) के जवाब में सीधे सतह पर ड्रॉइंग की जा सकती है. कार्ड दिखने या छिपने पर, अपना रेंडरिंग लॉजिक शुरू और बंद करने के लिए, surfaceCreated और surfaceDestroyed तरीके का इस्तेमाल करें.

ध्यान दें कि सरफ़ेस होल्डर के कॉलबैक मैथड, मुख्य यूज़र इंटरफ़ेस (यूआई) थ्रेड पर शुरू नहीं होते हैं.

लाइव कार्ड चुनने से जुड़ी सेटिंग मैनेज करना

लाइव कार्ड में, कार्रवाई (कोई गतिविधि, सेवा शुरू करने या ब्रॉडकास्ट करने के लिए PendingIntent) उपलब्ध होनी चाहिए. जब उपयोगकर्ता कार्ड पर टैप करे, तो एक लाइव कार्ड चालू हो जाए. आम तौर पर, इस कार्रवाई की मदद से, विकल्प मेन्यू दिखाने वाली या उपयोगकर्ता को आपके ऐप्लिकेशन के किसी दूसरे हिस्से में भेजने वाली गतिविधि लॉन्च की जाती है. कम से कम, आपको एक विकल्प देना चाहिए, ताकि उपयोगकर्ता लाइव कार्ड को टाइमलाइन से हटा सके.

     LiveCard liveCard; // initialized elsewhere
     Intent intent = new Intent(context, MyActivity.class);
     liveCard.setAction(PendingIntent.getActivity(context, 0, intent, 0));
 

जिन लाइव कार्ड में कोई कार्रवाई नहीं है वे नहीं दिखाए जाएंगे.

नेस्टेड क्लास
enum LiveCard.पब्लिशमोड इससे यह तय होता है कि पब्लिश किए जाने पर, उपयोगकर्ता को कार्ड किस तरह दिखेगा. 
स्थिरांक
String EXTRA_FROM_LIVECARD_VOICE बूलियन एक्स्ट्रा से पता चलता है कि Intent को लाइव कार्ड से आवाज़ के ज़रिए चालू किया गया था.
पब्लिक कंस्ट्रक्टर
LiveCard(संदर्भ का संदर्भ, स्ट्रिंग टैग)
सार्वजनिक मेथड
लाइव कार्ड
SurfaceHolder
बूलियन
शून्य
शून्य
लाइव कार्ड
लाइव कार्ड
setDirect दिलचस्पी चालू है(बूलियन चालू है)
लाइव कार्ड
setRenderer(GlRenderer रेंडरर)
लाइव कार्ड
setViews(RemoteViews व्यू)
लाइव कार्ड
setVoiceActionEnabled(बूलियन चालू है)
शून्य
इनहेरिट की गई विधियां

स्थिरांक

एपीआई लेवल XE21 में जोड़ा गया

सार्वजनिक स्टैटिक फ़ाइनल स्ट्रिंग EXTRA_FROM_LIVECARD_VOICE

बूलियन एक्स्ट्रा से पता चलता है कि Intent को लाइव कार्ड से आवाज़ के ज़रिए चालू किया गया था.

कॉन्सटेंट वैल्यू: "android.intent.extra.EXTRA_FROM_LIVECARD"

पब्लिक कंस्ट्रक्टर

एपीआई लेवल XE16 में जोड़ा गया

सार्वजनिक लाइव कार्ड (संदर्भ संदर्भ, स्ट्रिंग टैग)

दिए गए टैग से लाइव कार्ड बनाता है.

ध्यान दें कि कार्ड तब तक दिखाई नहीं देता है, जब तक उसे साफ़ तौर पर प्रकाशित नहीं किया जाता.

पैरामीटर
संदर्भ ऐप्लिकेशन के कॉन्टेक्स्ट
टैग कार्ड के लिए गैर-शून्य टैग; यह डीबग करने के उद्देश्य से है

सार्वजनिक मेथड

एपीआई लेवल XE16 में जोड़ा गया

सार्वजनिक लाइवकार्ड अटैच करना (सेवा की सेवा)

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

इस लाइव कार्ड के अनपब्लिश होने पर, यह सेवा फ़ोरग्राउंड से अपने-आप हट जाएगी.

पैरामीटर
सेवा इसे फ़ोरग्राउंड में चलने के लिए सेट किया जाएगा
एक्सप्रेशन से मिलने वाला नतीजा
  • कॉल चेन के लिए यह ऑब्जेक्ट
एपीआई लेवल XE12 में जोड़ा गया

सार्वजनिक SurfaceHolder getSurfaceHolder ()

सीधे तौर पर रेंडर होने की सुविधा चालू होने पर, Surface को ड्रॉइंग बनाने का ऐक्सेस देता है.

ध्यान दें कि SurfaceHolder को, मैनेज किए जा रहे प्लैटफ़ॉर्म को ऐक्सेस करने के लिए, सिर्फ़ इस्तेमाल किया जाना चाहिए. सतह के आकार और प्रकार को बदलने के तरीकों में विकल्प नहीं होते हैं.

यह भी ध्यान दें कि इस ऑब्जेक्ट के लिए कॉलबैक, यूज़र इंटरफ़ेस (यूआई) थ्रेड में नहीं बनाए जाते.

यह भी देखें
एपीआई लेवल XE12 में जोड़ा गया

सार्वजनिक बूलियन isपब्लिश किया गया ()

अगर कार्ड फ़िलहाल पब्लिश हो गया है, तो इससे true की जानकारी मिलती है.

एपीआई लेवल XE16 में जोड़ा गया

Public null नेविगेट करें ()

उपयोगकर्ता को यह कार्ड, टाइमलाइन पर भेजता है.

थ्रो
गैरकानूनी अपवाद अगर कार्ड पब्लिश नहीं हुआ है
एपीआई लेवल XE12 में जोड़ा गया

सार्वजनिक शून्य पब्लिश करें (LiveCard.पब्लिशमोड मोड)

यह कार्ड टाइमलाइन पर प्रकाशित करता है.

कार्ड सिर्फ़ तब दिखाया जाएगा, जब उस पर कोई कार्रवाई होगी. साथ ही, डायरेक्ट रेंडरिंग की सुविधा चालू होगी या रिमोट व्यू सेट किए गए होंगे.

पैरामीटर
मोड यह तय करता है कि उपयोगकर्ता को कार्ड किस तरह दिखेगा
एपीआई लेवल XE12 में जोड़ा गया

सार्वजनिक LiveCard setAction (PendingIntent इंटेंट)

कार्ड चुनने पर की गई कार्रवाई बदल जाती है.

पैरामीटर
इंटेंट कार्ड चुने जाने पर सक्रिय हो जाएगा
एक्सप्रेशन से मिलने वाला नतीजा
  • कॉल चेन के लिए यह ऑब्जेक्ट
एपीआई लेवल XE12 में जोड़ा गया

सार्वजनिक LiveCard setDirectConfigurationEnabled (बूलियन चालू करें)

सीधे तौर पर रेंडर होने की सुविधा चालू करता है.

इस मोड में, कार्ड के कॉन्टेंट को सीधे Surface में रेंडर करना होगा.

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

पैरामीटर
चालू करो क्या डायरेक्ट रेंडरिंग की सुविधा चालू होनी चाहिए
एक्सप्रेशन से मिलने वाला नतीजा
  • कॉल चेन के लिए यह ऑब्जेक्ट
यह भी देखें
एपीआई लेवल XE16 में जोड़ा गया

सार्वजनिक LiveCard setRenderer (GlRenderer रेंडरर)

OpenGL-आधारित रेंडरर जोड़ता है.

रेंडर करने वाले टूल का इस्तेमाल, किसी ऐसे प्लैटफ़ॉर्म पर ड्रॉइंग (अपने-आप) करने के लिए किया जाएगा जिसका अनुरोध सीधे किया गया है.

एक्सप्रेशन से मिलने वाला नतीजा
  • कॉल चेन के लिए यह ऑब्जेक्ट
एपीआई लेवल XE12 में जोड़ा गया

सार्वजनिक LiveCard setViews (RemoteViews व्यू)

इस कार्ड का यूआई दिखाने के लिए, RemoteViews का इस्तेमाल किया जाता है.

पब्लिश किए गए कार्ड के रिमोट व्यू में सीधे कोई भी बदलाव करने के बाद, इस तरीके को भी कॉल किया जाना चाहिए. ऐसा न होने पर, उन बदलावों को टाइमलाइन पर नहीं दिखाया जाएगा.

अगर सीधे तौर पर रेंडर होने की सुविधा चालू है, तो इस तरीके का कोई असर नहीं होता.

पैरामीटर
व्यू मिले कार्ड का यूज़र इंटरफ़ेस (यूआई)
एक्सप्रेशन से मिलने वाला नतीजा
  • कॉल चेन के लिए यह ऑब्जेक्ट
यह भी देखें
एपीआई लेवल XE21 में जोड़ा गया

सार्वजनिक LiveCard setVoiceActionEnabled (बूलियन चालू करें)

टाइमलाइन पर कार्ड दिखाए जाने पर आवाज़ से जुड़ी कार्रवाई चालू हो जाती है.

सेट किए जाने पर, कार्ड टाइमलाइन पर दिखाए जाने पर "Ok कांच" की आवाज़ सुनता है और जब इस गार्ड के वाक्यांश को बोला जाता है, तो यह इंटेंट setAction(PendingIntent) तरीके से सेट किए गए इंटेंट को सक्रिय करता है. अगर इंटेंट से कोई ऐसी गतिविधि शुरू होती है जो संदर्भ के हिसाब से बोले गए मेन्यू को लागू करती है, तो गतिविधि अपने-आप पहले मेन्यू आइटम पर खुलेगी (जैसे कि गतिविधि के अंदर "Ok ग्लास" बोला गया था). इस सुविधा को चालू करने पर, लाइव कार्ड में दिए गए वॉइस मेन्यू को काम का बनाया जा सकता है.

पैरामीटर
चालू करो बोलकर फ़ोन का इस्तेमाल करने की सुविधा चालू होनी चाहिए या नहीं
एक्सप्रेशन से मिलने वाला नतीजा
  • कॉल चेन के लिए यह ऑब्जेक्ट
यह भी देखें
एपीआई लेवल XE12 में जोड़ा गया

Public null अनपब्लिश करें ()

टाइमलाइन से इस कार्ड को अनपब्लिश करें.