विजेट चुनने वाले टूल में, जनरेट की गई झलकें जोड़ना

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

इस गाइड में, Glance पर आधारित विजेट के लिए झलक दिखाने का तरीका बताया गया है. अगर आपका विजेट RemoteViews की मदद से लागू किया गया है, तो विजेट पिकर में झलकियां जोड़ना लेख पढ़ें.

Glance विजेट के लिए, अपने ऐप्लिकेशन के विजेट पिकर के अनुभव को बेहतर बनाने के लिए, Android 15 और इसके बाद के वर्शन वाले डिवाइसों पर GlanceAppWidget.providePreview का इस्तेमाल करके, जनरेट की गई विजेट की झलक दिखाएं. साथ ही, इससे पहले के वर्शन के लिए previewImage एट्रिब्यूट की वैल्यू दें. इसके अलावा, अगर जनरेट की गई झलक उपलब्ध नहीं है, तो Android 15 और इसके बाद के वर्शन वाले डिवाइसों पर फ़ॉलबैक के तौर पर भी इस एट्रिब्यूट का इस्तेमाल किया जा सकता है.

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

जनरेट किए गए विजेट की झलक दिखाने के लिए, अपना ऐप्लिकेशन सेट अप करना

Android 15 या इसके बाद के वर्शन वाले डिवाइस पर, जनरेट की गई विजेट की झलक दिखाने के लिए, सबसे पहले मॉड्यूल build.gradle फ़ाइल में compileSdk की वैल्यू 35 या इसके बाद के वर्शन पर सेट करें. इससे विजेट पिकर को RemoteViews देने की सुविधा मिलेगी

इसके बाद, ऐप्लिकेशन GlanceAppWidgetManager में setWidgetPreview का इस्तेमाल कर सकते हैं. सिस्टम के गलत इस्तेमाल को रोकने और सिस्टम की परफ़ॉर्मेंस को बेहतर बनाने के लिए, setWidgetPreview एक ऐसा एपीआई है जिस पर दर से जुड़ी सीमाएं लागू होती हैं. डिफ़ॉल्ट सीमा, हर घंटे में करीब दो कॉल है.

Jetpack Glance की मदद से अपडेट की गई झलक जनरेट करना

Jetpack Glance की मदद से बनाए गए विजेट के लिए, यह तरीका अपनाएं:

  1. झलक के लिए कंपोज़ेबल कॉन्टेंट उपलब्ध कराने के लिए, GlanceAppWidget.providePreview के फ़ंक्शन को बदलें. provideGlance में जिस तरह से किया जाता है उसी तरह से, अपने ऐप्लिकेशन का डेटा लोड करें और उसे विजेट के कॉन्टेंट कंपोज़ेबल में पास करें. इससे यह पक्का किया जा सकेगा कि झलक में सटीक डेटा दिखे. provideGlance के उलट, यह एक सिंगल कंपोज़िशन है. इसमें न तो रिकॉम्पोज़िशन होता है और न ही कोई इफ़ेक्ट होता है.

  2. झलक जनरेट करने और उसे पब्लिश करने के लिए, GlanceAppWidgetManager.setWidgetPreviews का इस्तेमाल करें.

झलक दिखाने के लिए, सिस्टम से कोई कॉलबैक नहीं होता. इसलिए, आपके ऐप्लिकेशन को यह तय करना होगा कि setWidgetPreviews का इस्तेमाल कब करना है. अपडेट करने की रणनीति, आपके विजेट के इस्तेमाल के उदाहरण पर निर्भर करती है:

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

जनरेट की गई झलक से जुड़ी समस्या हल करना

आम तौर पर, यह समस्या तब होती है, जब झलक जनरेट करने के बाद, विजेट के ड्रॉप साइज़ के हिसाब से झलक वाली इमेज में इमेज, आइकॉन या अन्य कंपोज़ेबल मौजूद नहीं होते. अगर पहले से तय किया गया हो, तो ड्रॉप का साइज़, targetCellWidth और targetCellHeight से तय होता है. अगर ऐसा नहीं किया गया है, तो ऐप्लिकेशन विजेट की सेवा देने वाली कंपनी की जानकारी वाली फ़ाइल में मौजूद minWidth और minHeight से तय होता है.

ऐसा इसलिए होता है, क्योंकि Android डिफ़ॉल्ट रूप से सिर्फ़ उन कंपोज़ेबल को रेंडर करता है जो विजेट के कम से कम साइज़ पर दिखते हैं. दूसरे शब्दों में कहें, तो Android डिफ़ॉल्ट रूप से previewSizeMode को SizeMode.Single पर सेट करता है. यह ऐप्लिकेशन विजेट उपलब्ध कराने वाले ऐप्लिकेशन की जानकारी देने वाले एक्सएमएल में android:minHeight और android:minWidth का इस्तेमाल करता है, ताकि यह तय किया जा सके कि किन कंपोज़ेबल को ड्रॉ करना है.

इस समस्या को ठीक करने के लिए, अपने GlanceAppWidget में previewSizeMode को लागू करें और इसे SizeMode.Responsive पर सेट करें. साथ ही, DpSize की वैल्यू का सेट उपलब्ध कराएं. इससे Android को, झलक दिखाने के लिए ज़रूरी सभी लेआउट साइज़ के बारे में पता चलता है. इससे यह पक्का होता है कि सभी एलिमेंट सही तरीके से दिखें.

चुनिंद साइज़ के डिवाइसों के लिए ऑप्टिमाइज़ करें. कम से कम साइज़ से शुरू करके, अपने विजेट के ब्रेकपॉइंट के हिसाब से एक या दो साइज़ दें. पुराने सिस्टम के साथ काम करने की सुविधा के लिए, कम से कम एक previewImage तय करें. आपको विजेट डिज़ाइन से जुड़े दिशा-निर्देश में, अलग-अलग ग्रिड साइज़ के लिए कम से कम डीपी वैल्यू मिल सकती हैं.

विजेट की झलक दिखाने की सुविधा के साथ पुराने सिस्टम के साथ काम करने की सुविधा

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

विजेट के दिखने के तरीके में बदलाव करने पर, झलक वाली इमेज को अपडेट करें.