मेरे पास एक चल रहा लाइव वॉलपेपर है और कैनवास पर परिवर्तन प्रदर्शित करने के लिए SCREEN_ON
ईवेंट पर प्रतिक्रिया दें। हालांकि कुछ फोनों पर उपयोगकर्ता एक अलग लॉकस्क्रीन और होमस्क्रीन वॉलपेपर (टचविज़, कुछ एक्सपीरिया डिवाइस) सेट कर सकता है। जब उपयोगकर्ता ने लॉकस्क्रीन पर एक अलग वॉलपेपर सेट किया है तो मेरा लाइव वॉलपेपर नहीं दिखाया गया है।पता लगाएं कि अलग-अलग घर- और लॉकस्क्रीन वॉलपेपर सेट हैं
गैलेक्सी एस 3 पर मैंने WallpaperService.Engine.isVisible()
का उपयोग किया और यह सही ढंग से false
देता है जब उपयोगकर्ता ने एक अलग लॉकस्क्रीन वॉलपेपर सेट किया है। गैलेक्सी एस 3 मिनी पर, हालांकि, यह काम नहीं करता है, क्योंकि isVisible()
true
देता है कि मेरा लाइव वॉलपेपर सक्रिय लॉकस्क्रीन वॉलपेपर है या नहीं।
WallpaperManager.getWallpaperInfo()
या WallpaperManager.peekDrawable()
, या तो काम नहीं क्योंकि getWallpaperInfo()
वर्तमान लॉकस्क्रीन वॉलपेपर की परवाह किए बिना मेरी लाइव वॉलपेपर देता है, और peekDrawable()
एक वैध drawable मेरे लाइव वॉलपेपर दोनों स्क्रीन के लिए सेट कर दिया जाता है, भले ही रिटर्न है। मैंने WallpaperService.Engine.onTouchEvent(..)
को सुनने की कोशिश की, लेकिन लॉकस्क्रीन से टच इवेंट मेरे लाइव वॉलपेपर से नहीं निकलते हैं, क्योंकि वे अनलॉक स्लाइडर से खपत होते हैं।
क्या यह पता लगाने का कोई और तरीका है कि मेरा लाइव वॉलपेपर वर्तमान लॉकस्क्रीन वॉलपेपर है या नहीं? मैं प्रतिबिंब-हैक, कामकाज, सबकुछ ठीक कर रहा हूं जो मुझे ऐसा करने देगा।
संपादित करें: यह भी पर गैलेक्सी नोट 2 नहीं एक्सपीरिया टी LT30p
क्या आपने wallpapersService.Engine.onVisibilityChanged (..) की कोशिश की है? – StarPinkER
हां, 'isVisible()' केवल 'अंतिम दृश्यता'() 'पर दिया गया अंतिम मान देता है, इसलिए वे दोनों एक ही डेटा बेस – Thrakbad
पर काम करते हैं क्या आप इसे हल करना समाप्त कर चुके हैं? यदि ऐसा है, तो कुछ कोड की सराहना की जाएगी –