如何将锁屏壁纸设置为实时壁纸

时间:2019-09-04 19:49:30

标签: java android live-wallpaper

我正在开发一个android应用程序,我需要将锁屏墙纸和普通墙纸设置为动画墙纸。我使用自定义墙纸服务,并使用新的Intent将其设置为主屏幕。虽然这适用于主屏幕,但我还没有找到使其在锁定屏幕上工作的方法,但我得到的最接近的方法是使其在三星手机上工作。现在我想知道我是否能做些什么来实现自己的目标。

这是我当前的实现方式:

Intent intent = new Intent("android.service.wallpaper.CHANGE_LIVE_WALLPAPER");
intent.putExtra("android.service.wallpaper.extra.LIVE_WALLPAPER_COMPONENT", new ComponentName(MainActivity.this, BorderlightWallpaperService.class));
startActivity(intent);

1 个答案:

答案 0 :(得分:0)

从API级别24开始,他们已经在WallpaperManager中添加了新方法(并更新了文档)和标志,这些标志和标志使您不仅可以将墙纸设置为主屏幕,还可以将其设置为锁定屏幕

要将墙纸设置为锁定屏幕,请使用新的标志WallpaperManager.FLAG_LOCK,以及采用int which的方法之一

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

您还可以使用以下方法之一

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)