【问题标题】:How to set lock screen wallpaper to a live one如何将锁屏壁纸设置为实时壁纸
【发布时间】:2019-09-04 19:49:30
【问题描述】:

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

这是我当前的实现:

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);

【问题讨论】:

  • 您介意分享您的实现吗?
  • 我编辑了消息

标签: java android live-wallpaper


【解决方案1】:

从 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)

【讨论】:

  • 这不是我想要的。这仅支持位图,我需要使用动画壁纸。这行不通
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-25
  • 1970-01-01
相关资源
最近更新 更多