LiveCard
इस क्लास में, आपको चालू कार्ड बनाने और उन्हें टाइमलाइन पर पब्लिश करने की सुविधा मिलती है.
लाइव कार्ड बनाने के बारे में ज़्यादा जानकारी के लिए, यह देखें लाइव कार्ड से जुड़ी डेवलपर गाइड.
लाइव कार्ड की लाइफ़
लाइव कार्ड का मालिकाना हक लंबे समय तक चलता रहे, इसके लिए उन्हें लंबे समय तक चलने वाले कॉन्टेक्स्ट की ज़रूरत होती है
पब्लिश किया गया है, तो आपको उन्हें बैकग्राउंड Service
में मैनेज करना चाहिए. इसके बाद आप
सेवा शुरू होते ही एक लाइव कार्ड पब्लिश करें या ऐसे अन्य इवेंट की वजह से
सर्विस मॉनिटर. इसी तरह, आपको कार्ड तब अनपब्लिश कर देने चाहिए जब वे काम के न हों या जब वे काम के न हों
सेवा को खत्म कर दिया जाता है.
लाइव कार्ड पब्लिश करते समय, आपके पास यह चुनने का विकल्प होता है कि उपयोगकर्ताओं पर इसका क्या असर पड़ेगा. बिना आवाज़ के पब्लिश करते समय, कार्ड को टाइमलाइन में बिना किसी इफ़ेक्ट के डाला जाएगा: उपयोगकर्ताओं को क्लिक करें. लाइव कार्ड दिखने के तुरंत बाद, वह अपने-आप दिखने की सुविधा भी चालू कर सकता है पब्लिश किया गया. यह अक्सर तब फ़ायदेमंद होता है, जब आपके ऐप्लिकेशन का मुख्य यूज़र इंटरफ़ेस एक लाइव कार्ड हो न कि कोई गतिविधि.
लाइव कार्ड पर कॉन्टेंट दिखाना
लाइव कार्ड, किसी लेआउट संसाधन से या आपके कोड को रेंडर करने की अनुमति देकर कॉन्टेंट दिखा सकता है उस पर रखा जा सकता है. अपने ऐप्लिकेशन के हिसाब से, सबसे सही तरीका चुनें आपको कार्ड पर कॉन्टेंट को कितनी बार अपडेट करना होगा और क्या मुख्य तौर पर विजेट या फ़्री-फ़ॉर्म ग्राफ़िक.
रिमोट व्यू का इस्तेमाल करके लेआउट को इनफ़्लेट करना
अगर आपके ऐप्लिकेशन को सिर्फ़ स्टैंडर्ड विजेट और बार-बार अपडेट करने की ज़रूरत है (करीब कुछ सेकंड या
रीफ़्रेश करने के बीच ज़्यादा समय दें). इसके बाद, RemoteViews
क्लास की मदद से अपना कार्ड बनाएं.
RemoteViews
ऑब्जेक्ट, Glass टाइमलाइन की सुविधा देता है, जो इससे अलग प्रोसेस में चलती है
आपके खुद के ऐप्लिकेशन कोड के लिए, आपके बनाए गए लेआउट को इनफ़्लेट करने के लिए किया जा सकता है.
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.PublishMode | इससे यह तय होता है कि पब्लिश होने पर, उपयोगकर्ता को कार्ड कैसे दिखाया जाएगा. |
स्थिरांक | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
String | EXTRA_FROM_LIVECARD_VOICE | बूलियन एक्स्ट्रा को दिखाता है कि Intent को लाइव कार्ड से बोलकर चालू किया गया था. |
पब्लिक कंस्ट्रक्टर | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
सार्वजनिक तरीके | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
LiveCard | |||||||||||
SurfaceHolder | |||||||||||
बूलियन | |||||||||||
अमान्य |
navigate()
|
||||||||||
अमान्य | |||||||||||
LiveCard |
setAction(PendingIntent इंटेंट)
|
||||||||||
LiveCard |
setDirectRenderingEnabled(बूलियन चालू हो)
|
||||||||||
LiveCard |
setRenderer(GlRenderer रेंडरर)
|
||||||||||
LiveCard |
setViews(RemoteViews व्यू)
|
||||||||||
LiveCard |
setVoiceActionEnabled(बूलियन चालू करें)
|
||||||||||
अमान्य |
इनहेरिट किए गए तरीके | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
स्थिरांक
पब्लिक कंस्ट्रक्टर
सार्वजनिक LiveCard (कॉन्टेक्स्ट संदर्भ, स्ट्रिंग टैग)
दिए गए टैग की मदद से लाइव कार्ड बनाता है.
ध्यान दें कि कार्ड तब तक नहीं दिखता, जब तक उसे साफ़ तौर पर पब्लिश न किया गया हो.
पैरामीटर
संदर्भ | ऐप्लिकेशन का संदर्भ |
---|---|
टैग | कार्ड के लिए नॉन-शून्य टैग; यह डीबग करने के लिए है |
सार्वजनिक तरीके
सार्वजनिक LiveCard अटैच करें (सेवा सेवा)
बैकग्राउंड Service
जोड़ें, ताकि जब इस कार्ड को ऐक्सेस किया जा सके, तब
पब्लिश किया जाता है, तो दी गई सेवा फ़ोरग्राउंड में चलने के लिए सेट हो जाएगी.
ऐसा होने पर, सेवा फ़ोरग्राउंड से अपने-आप हट जाएगी लाइव कार्ड को अनपब्लिश किया गया है.
पैरामीटर
सेवा | को लगातार चलने के लिए सेट किया जाएगा |
---|
रिटर्न
- कॉल चेन के लिए यह ऑब्जेक्ट
सार्वजनिक SurfaceHolder getSurfaceHolder ()
डायरेक्ट रेंडरिंग चालू होने पर, उस Surface
का ऐक्सेस देता है जिस पर ड्रॉ करना है.
ध्यान दें कि लौटाए गए SurfaceHolder
का इस्तेमाल,
मैनेज किया जा रहा प्लैटफ़ॉर्म. सतह के आकार और टाइप में बदलाव करने के तरीके 'नो-ऑप' नहीं हैं.
ध्यान दें कि इस ऑब्जेक्ट के लिए, यूज़र इंटरफ़ेस (यूआई) थ्रेड में कॉलबैक नहीं किए जाते.
यह भी देखें
सार्वजनिक बूलियन isPublished ()
अगर कार्ड वर्तमान में प्रकाशित है, तो true
लौटाता है.
सार्वजनिक अमान्य नेविगेट करें ()
टाइमलाइन में उपयोगकर्ता को इस कार्ड पर भेजता है.
थ्रो
IllegalStateException | अगर कार्ड पब्लिश नहीं किया गया है |
---|
सार्वजनिक अमान्य पब्लिश करें (LiveCard.PublishMode मोड)
इस कार्ड को टाइमलाइन पर पब्लिश करता है.
कार्ड सिर्फ़ तब दिखेगा, जब इसमें कोई कार्रवाई होगी. साथ ही, यह तब दिखेगा, जब डायरेक्ट रेंडरिंग चालू हो या रिमोट व्यू सेट कर दिए गए हैं.
पैरामीटर
मोड | तय करता है कि उपयोगकर्ता को कार्ड कैसे दिखाया जाए |
---|
सार्वजनिक LiveCard setAction (PendingIntent इंटेंट)
कार्ड चुने जाने पर की जाने वाली कार्रवाई को बदल देता है.
पैरामीटर
इंटेंट | कार्ड चुने जाने पर सक्रिय हो जाएगा |
---|
रिटर्न
- कॉल चेन के लिए यह ऑब्जेक्ट
सार्वजनिक LiveCard setDirectRenderingEnabled (बूलियन चालू करें)
इससे डायरेक्ट रेंडरिंग चालू होती है.
इस मोड में, कार्ड का कॉन्टेंट सीधे Surface
में रेंडर करना होगा.
ध्यान दें कि इस तरीके को सिर्फ़ तब कॉल किया जा सकता है, जब कार्ड को पब्लिश न किया गया हो. अगर ऐसा नहीं है, तो अपवाद बनाओ.
पैरामीटर
चालू करें | क्या डायरेक्ट रेंडरिंग चालू होनी चाहिए |
---|
रिटर्न
- कॉल चेन के लिए यह ऑब्जेक्ट
यह भी देखें
सार्वजनिक LiveCard setRenderer (GlRenderer रेंडरर)
OpenGL-आधारित रेंडरर जोड़ता है.
रेंडरर का इस्तेमाल, सीधे उस प्लैटफ़ॉर्म पर ड्रॉ करने के लिए किया जाएगा जिसका अनुरोध किया गया है (अपने-आप) रेंडरिंग.
रिटर्न
- कॉल चेन के लिए यह ऑब्जेक्ट
सार्वजनिक LiveCard setViews (RemoteViews दृश्य)
इस कार्ड के यूज़र इंटरफ़ेस (यूआई) को दिखाने के लिए इस्तेमाल होने वाला RemoteViews
बदलता है.
इस विधि को रिमोट व्यू में सीधे कोई बदलाव करने के बाद भी कॉल किया जाना चाहिए या वे बदलाव टाइमलाइन पर नहीं दिखेंगे.
अगर डायरेक्ट रेंडरिंग चालू है, तो इस तरीके का कोई असर नहीं होता.
पैरामीटर
व्यू | कार्ड का यूज़र इंटरफ़ेस (यूआई) |
---|
रिटर्न
- कॉल चेन के लिए यह ऑब्जेक्ट
यह भी देखें
सार्वजनिक LiveCard setVoiceActionEnabled (बूलियन चालू करें)
टाइमलाइन पर कार्ड दिखाए जाने पर बोलकर फ़ोन का इस्तेमाल करने की सुविधा चालू करता है.
सेट किए जाने पर, कार्ड "ok Glass" के बारे में सोचता है कब टाइमलाइन पर दिखाया जाता है और
जब गार्ड वाक्यांश बोले जाता है, तो उस इंटेंट को सक्रिय कर देता है, जो
setAction(PendingIntent)
तरीका. अगर यह इंटेंट
काम के वॉइस मेन्यू को लागू करने वाली गतिविधि है, तो गतिविधि अपने-आप
पहले मेन्यू आइटम खोलने के लिए (जैसे कि गतिविधि के अंदर "ok ग्लास" बोला गया हो
भी शामिल है). इस सुविधा से लाइव कार्ड पर, संदर्भ के हिसाब से वॉइस मेन्यू लागू किए जा सकते हैं.
पैरामीटर
चालू करें | बोलकर फ़ोन का इस्तेमाल करने की सुविधा चालू की जानी चाहिए या नहीं |
---|
रिटर्न
- कॉल चेन के लिए यह ऑब्जेक्ट
यह भी देखें
सार्वजनिक अमान्य अनपब्लिश करें ()
टाइमलाइन से यह कार्ड अनपब्लिश करता है.