2010-04-16 8 views
29

Estoy empezando con la programación de Android, y quiero ver si hay una forma de establecer programáticamente la imagen de la pantalla de bloqueo. He encontrado varias formas de configurar el fondo de pantalla en la API, pero parece que no puedo encontrar formas equivalentes de configurar la imagen de la pantalla de bloqueo.Cómo establecer la imagen de la pantalla de bloqueo de Android

He visto varias publicaciones que dicen que la personalización de la pantalla de bloqueo mediante la adición de widgets o aplicaciones no es posible, pero seguramente debe haber una forma de configurar la imagen mediante programación.

Saludos,

Robin

Respuesta

13

No existe una "imagen de la pantalla de bloqueo" en Android. No hay ningún concepto de "imagen de pantalla bloqueada" que sea el mismo entre stock de Android, HTC Sense, MOTOBLUR, etc. Esto simplemente no forma parte del SDK de Android.

El proyecto que el Sr. Rijk señala es una violación de seguridad que pretende ser un reemplazo de pantalla de bloqueo.

+1

No estaba al tanto de eso. ¡Gracias por señalar esto! –

+3

Bajé esta respuesta porque hay una aplicación que hace esto específicamente ahora. Checkout, muse http://seemuse.com/home.html – uptownhr

+4

@uptownhr No me gustaría votar tu comentario si pudiera. Muse es una aplicación de reemplazo de pantalla de bloqueo. No establece el fondo de la pantalla de bloqueo.Establece su ** propio ** fondo ya que _se convierte_ en la pantalla de bloqueo. – copolii

3

Hay una forma de hacerlo en dispositivos Samsung. En el intento puedes poner un extra.

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

sólo he probado esto en algunos móviles de Samsung y no hay garantía de que esto no va a romper algún momento en el futuro. Usar con precaución.

+0

¿Qué significa intención? –

+0

por favor den el ejemplo correcto y examplé completo –

22

A partir del API de nivel 24 se han añadido nuevos métodos (y actualizada la documentation) y banderas a la WallpaperManager que le permiten configurar un Wallpaper no sólo a la pantalla normal, sino también a la Lockscreen

Para establecer una Wallpaper a la Lockscreen utilizar la nueva bandera WallpaperManager.FLAG_LOCK, y uno de los métodos que toman int which

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

También puede utilizar uno de los métodos siguientes

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) 

Una adición agradable es que ahora también puede comprobar si se le permite comprobar el fondo de pantalla a través de isSetWallpaperAllowed, y obtener la imagen de fondo conjunto actual a través de getWallpaperFile

Consulte la actualización documentation para el WallpaperManager.

0

Hay otra forma de hacerlo. al principio, debe guardar la imagen que desea establecer en LockScreen en una carpeta (supongamos que se llama "appName") y luego, usar el siguiente código para abrir la galería, después de que la galería haya abierto.el usuario acceda para abrir la carpeta "appName", y elige la imagen en la galería del sistema. en la galería, el usuario puede establecer una imagen como fondo de pantalla o papel de bloqueo de pantalla.

// este código para abrir la galería. startActivity (nuevo intento (Intent.ACTION_SET_WALLPAPER));

Cuestiones relacionadas