2010-04-16 9 views
29

मैं बस एंड्रॉइड प्रोग्रामिंग के साथ शुरू कर रहा हूं, और देखना चाहता हूं कि लॉक स्क्रीन छवि को प्रोग्रामेटिक रूप से सेट करने का कोई तरीका है या नहीं। मुझे एपीआई में वॉलपेपर सेट करने के कई तरीके मिल गए हैं, लेकिन मुझे लॉक स्क्रीन छवि को सेट करने के बराबर तरीके नहीं मिल रहे हैं।एंड्रॉइड लॉक स्क्रीन छवि को कैसे सेट करें

मैंने विभिन्न पदों को देखा है कि विजेट्स या अनुप्रयोगों के बिट्स जोड़कर लॉक स्क्रीन को अनुकूलित करना संभव नहीं है, लेकिन निश्चित रूप से छवि को प्रोग्रामेटिक रूप से सेट करने का एक तरीका होना चाहिए?

चीयर्स,

रॉबिन

उत्तर

13

कोई "लॉक स्क्रीन छवि" एंड्रॉयड में नहीं है। निश्चित रूप से कोई "लॉक स्क्रीन छवि" अवधारणा नहीं है जो स्टॉक एंड्रॉइड, एचटीसी सेंस, मोटलबुल इत्यादि के बीच समान है। यह केवल एंड्रॉइड एसडीके का हिस्सा नहीं है।

प्रोजेक्ट जो श्री रिजक इंगित करता है वह एक सुरक्षा उल्लंघन है जो लॉक स्क्रीन प्रतिस्थापन होने का नाटक करता है।

+1

मुझे इसके बारे में पता नहीं था। इस पर ध्यान दिलाने के लिए धन्यवाद! –

+3

मैंने इस जवाब को कम किया क्योंकि एक ऐप है जो विशेष रूप से अब करता है। चेकआउट, म्यूज़िक http://seemuse.com/home.html – uptownhr

+4

@uptownhr अगर मैं कर सकता हूं तो मैं आपकी टिप्पणी को कम कर दूंगा। म्यूज़न लॉक स्क्रीन प्रतिस्थापन ऐप है। यह लॉक स्क्रीन पृष्ठभूमि सेट नहीं करता है।यह अपनी ** ** ** पृष्ठभूमि सेट करता है क्योंकि यह लॉकस्क्रीन _becomes_ है। – copolii

3

सैमसंग उपकरणों पर ऐसा करने का एक तरीका है। इरादे में आप एक अतिरिक्त डाल सकते हैं।

intent.putExtra("SET_LOCKSCREEN_WALLPAPER", true); 
startActivity(intent); 

मैं केवल कुछ सैमसंग फोन पर इस परीक्षण किया है और कोई गारंटी नहीं है कि यह भविष्य में कुछ समय को तोड़ने नहीं होगा नहीं है। सावधानी से प्रयोग करें।

+0

ओह क्या इरादा है? –

+0

कृपया उचित उदाहरण और पूर्ण exapmle दें –

22

एपीआई स्तर 24 के रूप में वे नए तरीकों को शामिल किया है (और अद्यतन documentation) WallpaperManager जो आपको एक Wallpaper न केवल सामान्य स्क्रीन के लिए बल्कि Lockscreen

करने के लिए सेट करने के लिए एक सेट करने के लिए अनुमति देने के लिए और झंडे WallpaperLockscreen के लिए नया झंडा WallpaperManager.FLAG_LOCK, और तरीकों जो int which

WallpaperManager.getInstance(this).setStream(inputStream, null, true, WallpaperManager.FLAG_LOCK); 

लेने से एक का उपयोग 210

तुम भी निम्न विधियों

int setStream (InputStream bitmapData, Rect visibleCropHint, boolean allowBackup, int which) 

int setResource (int resid, int which) 

int setBitmap (Bitmap fullImage, Rect visibleCropHint, boolean allowBackup, int which) 

एक अच्छा इसके अतिरिक्त है कि आप अब भी getWallpaperFile

के माध्यम से आप isSetWallpaperAllowed के माध्यम से वॉलपेपर की जांच करने के लिए अनुमति दी जाती है, तो जांच कर सकते हैं, और पाने के वर्तमान सेट वॉलपेपर है में से एक का उपयोग कर सकते

WallpaperManager के लिए अद्यतन documentation देखें।

0

ऐसा करने का एक और तरीका है। सबसे पहले, आपको उस तस्वीर को सहेजने की ज़रूरत है जिसे आप किसी फ़ोल्डर में लॉकस्क्रीन में सेट करना चाहते हैं (मान लीजिए कि इसे "एपनाम" कहा जाता है)। और फिर, गैलरी खोलने के बाद गैलरी खोलने के लिए निम्न कोड का उपयोग करें। उपयोगकर्ता को "appName" फ़ोल्डर खोलने के लिए, और प्रणाली की गैलरी में तस्वीर का चयन करें। गैलरी में, उपयोगकर्ता वॉलपेपर या लॉकस्क्रीन पेपर के रूप में एक तस्वीर सेट कर सकते हैं।

// यह कोड गैलरी खोलने के लिए। प्रारंभ सक्रियता (नया इरादा (Intent.ACTION_SET_WALLPAPER));

संबंधित मुद्दे