我正在尝试查找当前选择的动态壁纸drawable
,但此代码每次都会返回我的默认动态壁纸Drawable
,而我的自定义动态壁纸设置为我的设备。
WallpaperManager wallpaperManager wallpaperManager = WallpaperManager.getInstance( this);
Drawable wallpaperDrawable1 = wallpaperManager.getDrawable();
getWindow().setBackgroundDrawable(wallpaperDrawable1);
但Docs表示它会返回当前选择的动态壁纸,它有什么问题,是否有manifest
中的任何权限要求。
答案 0 :(得分:0)
每个动态壁纸都会在设备中找到。因此,每个动态壁纸包都包含一个可绘制的图像,我们可以轻松获得。
方法getWallpaperInfo()
用于获取有关动态壁纸的信息。
所以getWallpaperInfo().loadThumbnail(PackageManager pm)
方法可以帮到你。
以下代码用于获取动态壁纸的可绘制图像:
//Reference to the package manager instance
PackageManager pm = getApplicationContext().getPackageManager();
/*
* Wallpaper info is not equal to null, that is if the live wallpaper
* is set, then get the drawable image from the package for the
* live wallpaper
*/
if (wallpaperManager.getWallpaperInfo() != null) {
wallpaperDrawable = wallpaperManager
.getWallpaperInfo().loadThumbnail(pm);
}
/*
* Else, if static wallpapers are set, then directly get the
* wallpaper image
*/
else {
wallpaperDrawable = wallpaperManager.getDrawable();
}