2013-12-20 33 views
2

我在查找當前選擇的動態壁紙drawable,但每次此代碼會給我默認動態壁紙Drawable,雖然我的自定義動態壁紙設置爲我的設備。找不到當前選中的動態壁紙可繪製

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

但文件說,它會返回當前選定的動態壁紙,什麼不對的地方,有沒有在任何manifest權限的任何要求。

回答

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(); 
    } 
+0

這並不實際工作。對於動態壁紙,它可以(並且經常)簡單地返回代表任何圖像的通用縮略圖。測試谷歌「壁紙」應用程序。 – alzee