Frage

Ich bin nur mit Android-Programmierung die ersten Schritte, und wollen sehen, ob es einen Weg gibt programmatisch die Sperre Bildschirm Bild gesetzt. Ich habe verschiedene Möglichkeiten der Einstellung der Tapete in der API gefunden, aber ich kann nicht scheinen, die entsprechenden Möglichkeiten der Einstellung der Bildschirmsperre Bild zu finden.

Ich habe sagen verschiedene Beiträge gesehen, dass die Sperre Bildschirm Anpassen von Widgets oder Bits von Anwendungen Hinzufügen nicht möglich ist, aber sicher muss es eine Möglichkeit, das Bild programmatisch zu setzen?

Cheers,

Robin

War es hilfreich?

Lösung

Es gibt kein "Lock Screen Bild" in Android. Es ist ganz sicher kein „Lock Screen Bild“ Konzept, das das gleiche zwischen Lager Android ist, HTC Sense, MOTOBLUR, etc. Dies ist einfach nicht Teil des Android SDK.

Das Projekt, dass Herr Rijk Punkte ist eine Sicherheitsverletzung, die vorgibt, ein Sperre Bildschirm Ersatz zu sein.

Andere Tipps

Wie die API-Ebene 24 sie neue Methoden hinzugefügt haben (und aktualisiert, um die Dokumentation ) und Fahnen an den WallpaperManager, die Sie eine Wallpaper nicht nur auf den Home-Bildschirm, sondern auch auf den Lockscreen

einstellen lassen

Um eine Wallpaper zum Lockscreen Verwendung setzen Sie die neue Fahne WallpaperManager.FLAG_LOCK , und eine der Methoden, die int which nehmen

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

Sie können auch eine der folgenden Methoden verwenden,

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 überprüfen, ob Sie berechtigt sind, die Tapete über isSetWallpaperAllowed zu setzen, und erhalten die aktuellen Tapete über getWallpaperFile

Sehen Sie sich die aktualisierte Dokumentation für die WallpaperManager.

Es gibt einen Weg, um es auf Samsung-Geräten zu tun. In der Absicht, können Sie ein zusätzliches 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 nicht einige Zeit in der Zukunft brechen. Verwenden Sie mit Vorsicht zu genießen.

Sie können diese drei Methoden der WalpaperManager Klasse verwenden, aber es wird nur Arbeit für die Katz Version Geräte oder darüber: -

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

public int setResource (int resid, 
            int which)

public int setStream (InputStream inputStreamData, 
            Rect visibleCropHint, 
            boolean allowBackup, 
            int which)

Parameter dieser drei Methoden: -

Bitmap / resid / inputStreamData: -einer Parameter akzeptieren Daten

visibleCropHint: -einer Parameter Rect-Objekt übernehmen, die in erster Linie für Cropping-Funktionalität verwendet wird, für weitere Informationen siehe Android-Entwickler-Referenz-Website , können Sie auch null übergeben, wenn u wollen nicht Funktionalität Zuschneiden

allowBackup: -boolean: true, wenn das Betriebssystem erlaubt ist dieses Hintergrundbild sichern zu einem zukünftigen Gerät wiederherstellen; andernfalls false.

, die: -Es einer der wichtigsten Parameter, die Sie konfigurieren Tapete für Bildschirm sperren und zu Hause hilft. für Lock Screen Verwendung WalpaperManager.FLAG_LOCK und für zu Hause Tapete Verwendung FLAG_SYSTEM

Ich gebe ein Beispiel für Sie verstehen, wie es zu verwenden: -

WalaperManager wm = WalaperManager.getInstance();
try {
       if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
           wm.setBitmap(bitmap,null,true,WalpaperManager.FLAG_LOCK);//For Lock screen
           Toast.makeText(context.context, "done", Toast.LENGTH_SHORT).show();
       }
       else{
            Toast.makeText(context.context, "Lock screen walpaper not supported", 
            Toast.LENGTH_SHORT).show();
       }
    } catch (e: Exception) {
        Toast.makeText(context.context, e.message, Toast.LENGTH_SHORT).show();
    }

Für weitere Informationen besuchen Sie Android Entwickler Wallpaper-Manager Referenz

Es gibt einen anderen Weg, dies zu tun. Zuerst müssen Sie das Bild speichern, die Sie in lockedscreen in einem Ordner Wanna (nehme an, es heißt „appName“ genannt). und dann die Verwendung folgenden Code offener Galerie, nachdem Galerie opened.lead Benutzer zu öffnen „appName“ Ordner hat, und das Bild in der Galerie des Systems wählen. in der Galerie, Benutzer ein Bild als Hintergrundbild oder Lockscreen Papier festlegen.

// dieser Code auf offene Galerie. startActivity (neu Intent (Intent.ACTION_SET_WALLPAPER));

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top