2010-04-16 5 views
29

Je ne fais que commencer avec la programmation Android, et je veux voir s'il existe un moyen de définir par programme l'image de l'écran de verrouillage. J'ai trouvé différentes façons de définir le fond d'écran dans l'API, mais je n'arrive pas à trouver les moyens équivalents de définir l'image de l'écran de verrouillage.Comment régler l'image de l'écran de verrouillage Android

J'ai vu plusieurs messages disant que la personnalisation de l'écran de verrouillage en ajoutant des widgets ou des bits d'applications n'est pas possible, mais il doit sûrement y avoir un moyen de définir l'image par programmation?

Cheers,

Robin

Répondre

13

Il n'y a pas "l'image de l'écran de verrouillage" dans Android. Il n'y a certainement pas de concept de "lock screen image" qui soit le même entre Android stock, HTC Sense, MOTOBLUR, etc. Cela ne fait tout simplement pas partie du SDK Android.

Le projet auquel M. Rijk fait référence est une violation de la sécurité qui prétend être un remplacement de l'écran de verrouillage.

+1

Je n'étais pas au courant de cela. Merci de l'avoir signalé! –

+3

J'ai downvoted cette réponse parce qu'il y a une application qui le fait maintenant. Caisse, muse http://seemuse.com/home.html – uptownhr

+4

@uptownhr Je baisserais votre commentaire si je pouvais. Muse est une application de remplacement d'écran de verrouillage. Il ne définit pas l'arrière-plan de l'écran de verrouillage.Il définit son propre arrière-plan ** car il devient le lockscreen. – copolii

3

Il existe un moyen de le faire sur les appareils Samsung. Dans l'intention, vous pouvez mettre un extra.

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

Je n'ai testé cela sur certains téléphones Samsung et il n'y a aucune garantie que cela ne cassera pas un peu de temps à l'avenir. Utiliser avec précaution.

+0

ohk que signifie l'intention? –

+0

s'il vous plaît donner l'exemple approprié et exapmle complet –

22

Comme l'API de niveau 24, ils ont ajouté de nouvelles méthodes (et mis à jour le documentation) et des drapeaux au WallpaperManager qui vous permettent de définir un Wallpaper non seulement à l'écran normal, mais aussi à la Lockscreen

Pour définir une Wallpaper à l'Lockscreen utiliser le nouveau drapeau WallpaperManager.FLAG_LOCK, et l'une des méthodes qui prennent int which

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

Vous pouvez également utiliser l'une des méthodes suivantes

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) 

Une belle addition est que vous pouvez également vérifier si vous êtes autorisé à vérifier le fond d'écran par isSetWallpaperAllowed, et obtenir le fond d'écran en cours de jeu via getWallpaperFile

Consultez la mise à jour documentation pour le WallpaperManager.

0

Il existe une autre façon de procéder. dans un premier temps, vous devez sauvegarder l'image que vous voulez placer dans un dossier verrouillé (supposer qu'il s'appelle "appName"). puis utiliser le code suivant pour ouvrir la galerie, après que la galerie a ouvert.lead utilisateur pour ouvrir le dossier "appName", et choisissez la photo dans la galerie du système. dans la galerie, l'utilisateur peut définir une image comme papier peint ou papier lockscreen.

// ce code pour ouvrir la galerie. StartActivity (nouvelle intention (Intent.ACTION_SET_WALLPAPER))

Questions connexes