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

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

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

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

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

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

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

इसके बाद, ऐप्लिकेशन 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 के पुराने वर्शन के साथ काम करने के लिए, कम से कम एक इमेज तय करें. आपको विजेट डिज़ाइन से जुड़े दिशा-निर्देश में, अलग-अलग ग्रिड साइज़ के लिए कम से कम डीपी वैल्यू मिल सकती हैं.

Android के पुराने वर्शन के साथ काम करना

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

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