Cómo establecer la imagen de la pantalla de locking de Android

Estoy empezando con la progtwigción de Android, y quiero ver si hay una manera de establecer programáticamente la imagen de la pantalla de locking. 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 locking.

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

Aclamaciones,

Robin

No hay una “imagen de pantalla de locking” 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 al que se refiere el Sr. Rijk es una violación de seguridad que pretende ser un reemplazo de pantalla de locking.

A partir del API Nivel 24, han agregado nuevos métodos (y actualizado la documentación ) y banderas al WallpaperManager que le permiten establecer un Wallpaper no solo en la pantalla de inicio sino también en la Lockscreen

Para establecer un Wallpaper de Wallpaper en la Wallpaper de Lockscreen usa 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 puedes usar uno de los siguientes métodos

 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 buena adición es que ahora también puedes comprobar si puedes establecer el fondo de pantalla a través de isSetWallpaperAllowed , y obtener el fondo de pantalla actual a través de getWallpaperFile

Consulte la documentación actualizada de WallpaperManager .

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

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

Solo he probado esto en algunos teléfonos Samsung y no hay garantía de que esto no termine en el futuro. Usar con precaución.

Hay otra forma de hacer esto. al principio, necesita guardar la imagen que desea establecer en LockScreen en una carpeta (supongamos que se llama “appName”) y luego, use 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 locking de pantalla.

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