Android 8.0 (एपीआई लेवल 26) और इसके बाद के वर्शन पर, उपयोगकर्ताओं को अपने ऐप्लिकेशन में मौजूद विजेट को होम स्क्रीन पर पिन करने की सुविधा दी जा सकती है. विजेट का प्रमोशन सीधे तौर पर अपने ऐप्लिकेशन में करने से, उपयोगकर्ताओं की दिलचस्पी बढ़ाई जा सकती है. ऐसा खास तौर पर तब किया जा सकता है, जब कोई उपयोगकर्ता किसी टास्क को पूरा कर लेता है या जब वह आपके ऐप्लिकेशन में किसी सुविधा को बार-बार ऐक्सेस करता है.
पिन करने का अनुरोध करना
विजेट पिन करने की सुविधा शुरू करने के लिए, GlanceAppWidgetManager
क्लास के requestPinGlanceAppWidget
तरीके का इस्तेमाल करें. Android के पुराने वर्शन पर काम करने वाले ऐप्लिकेशन के लिए, यह फ़ंक्शन false दिखाता है. हालांकि, अगर अनुरोध सिस्टम को भेज दिया जाता है, तो यह सही वैल्यू दिखाता है.
पिन का अनुरोध करने का तरीका यहां बताया गया है:
@Composable fun AnInAppComposable() { val context = LocalContext.current val coroutineScope = rememberCoroutineScope() Button( onClick = { coroutineScope.launch { GlanceAppWidgetManager(context).requestPinGlanceAppWidget( receiver = MyWidgetReceiver::class.java, preview = MyWidget(), previewState = DpSize(245.dp, 115.dp) ) } } ) {} }
इस उदाहरण में, MyWidgetReceiver
वह क्लास है जिसे विजेट के कॉलबैक मिलते हैं. वहीं, MyWidget
वह Glance विजेट है जिसे आपको पिन करना है. successCallback
एक PendingIntent
है. यह तब ट्रिगर होता है, जब विजेट को पिन कर दिया जाता है.
पिन करने के अनुरोध के जवाब को मैनेज करना
जब कोई उपयोगकर्ता पिन के अनुरोध वाले डायलॉग का जवाब देता है, तो आपके ऐप्लिकेशन को एक जवाब मिलता है. अगर उपयोगकर्ता अनुरोध स्वीकार करता है, तो आपका विजेट उसकी होम स्क्रीन पर पिन हो जाता है. साथ ही, successCallback
PendingIntent
ट्रिगर हो जाता है. अगर उपयोगकर्ता अनुरोध को अस्वीकार कर देता है, तो कुछ नहीं होता.
यह ध्यान रखना ज़रूरी है कि successCallback
सिर्फ़ तब ट्रिगर होता है, जब विजेट को होम स्क्रीन पर जोड़ दिया जाता है. अगर उपयोगकर्ता अनुरोध को अस्वीकार करता है या लॉन्चर पिन करने की सुविधा के साथ काम नहीं करता है, तो यह ट्रिगर नहीं होता है.