2010-04-16 24 views
29

Ich fange gerade mit androider Programmierung an und möchte sehen, ob es eine Weise gibt, das Bildschirmabsperrungsbild programmatisch einzustellen. Ich habe verschiedene Möglichkeiten gefunden, das Hintergrundbild in der API zu setzen, aber ich finde nicht die entsprechenden Möglichkeiten, das Sperrbildschirmbild festzulegen.Wie man android Sperrbildschirmbild einstellt

Ich habe verschiedene Beiträge gesehen, die sagen, dass das Anpassen des Sperrbildschirms durch Hinzufügen von Widgets oder Bits von Anwendungen nicht möglich ist, aber sicherlich muss es eine Möglichkeit geben, das Bild programmgesteuert festzulegen?

Cheers,

Robin

Antwort

13

Es gibt kein "Lock Screen Bild" in Android. Es gibt sicherlich kein "Lock Screen Image" -Konzept, das zwischen Android, HTC Sense, MOTOBLUR usw. gleich ist. Das ist einfach kein Teil des Android SDK.

Das Projekt, auf das Herr Rijk verweist, ist eine Sicherheitsverletzung, die vorgibt, ein Ersatz für den Sperrbildschirm zu sein.

+1

Ich war mir dessen nicht bewusst. Danke, dass du das unterstrichen hast! –

+3

Ich habe diese Antwort abgelehnt, weil es eine App gibt, die das jetzt gerade tut. Checkout, muse http://seemuse.com/home.html – uptownhr

+4

@uptownhr Ich würde Ihren Kommentar abgeben, wenn ich könnte. Muse ist eine Lock Screen Ersatz App. Der Hintergrund des Sperrbildschirms wird nicht festgelegt.Es setzt seinen ** eigenen ** Hintergrund, da es _der Lockscreen wird. – copolii

3

Es gibt eine Möglichkeit, es auf Samsung-Geräten zu tun. In der Absicht können Sie ein Extra setzen.

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

Ich habe nur diese auf einigen Samsung Handys getestet und es gibt keine Garantie, dass dies in der Zukunft einige Zeit nicht brechen. Verwenden Sie mit Vorsicht.

+0

ohk was heißt Absicht? –

+0

bitte geben Sie das richtige Beispiel und vollständige Beispiel –

22

Ab API Stufe 24 haben sie neue Methoden hinzugefügt (und die documentation aktualisiert) und Fahnen an die WallpaperManager die Sie erlauben, ein Wallpaper nicht nur auf den normalen Bildschirm zu setzen, sondern auch auf die Lockscreen

a einzustellen Wallpaper zum Lockscreen verwenden, um die neuen flag WallpaperManager.FLAG_LOCK, und eines des Verfahrens, die

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

ergreifen 210

Sie auch eine der folgenden Methoden

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) 

Eine schöne Ergänzung ist, dass man jetzt auch die Tapete überprüfen, ob Sie über isSetWallpaperAllowed, und erhalten Sie die aktuelle Hintergrundbild festlegen über getWallpaperFile

erlaubt können Sie überprüfen,

Überprüfen Sie die aktualisierte für die WallpaperManager.

0

Es gibt einen anderen Weg, dies zu tun. Zuerst müssen Sie das Bild speichern, das Sie in einem Ordner in einem gesperrten Bildschirm speichern möchten (angenommen, es heißt "appName"). Verwenden Sie dann den folgenden Code, um die Galerie zu öffnen, nachdem die Galerie geöffnet hat.Laden Sie den Benutzer, um den Ordner "appName" zu öffnen. und wähle das Bild in der Galerie des Systems. In der Galerie kann der Benutzer ein Bild als Hintergrundbild oder als Sperrbildschirm festlegen.

// Dieser Code zum Öffnen der Galerie. startActivity (neue Absicht (Intent.ACTION_SET_WALLPAPER));

Verwandte Themen