没有找到当前选择的动态壁纸Drawable

时间:2013-12-20 07:26:50

标签: android live-wallpaper

我正在尝试查找当前选择的动态壁纸drawable,但此代码每次都会返回我的默认动态壁纸Drawable,而我的自定义动态壁纸设置为我的设备。

WallpaperManager wallpaperManager wallpaperManager = WallpaperManager.getInstance( this);
Drawable wallpaperDrawable1 = wallpaperManager.getDrawable();
getWindow().setBackgroundDrawable(wallpaperDrawable1);

但Docs表示它会返回当前选择的动态壁纸,它有什么问题,是否有manifest中的任何权限要求。

1 个答案:

答案 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();
    }