2012-05-12 76 views
8

有沒有一種方法來編程獲得所有的android系統壁紙?獲取所有系統壁紙

我知道如何通過WallpaperManager獲取當前的一個,然後將其保存到磁盤。但我想知道是否有一種方法可以訪問所有與O.S.一起包含的系統壁紙的圖片。

+1

你必須澄清你的問題:「作爲系統壁紙的所有圖片」。由於一次只能有一個系統壁紙處於活動狀態,因此這可能不是您的問題。 如果你的問題是如何列出所有可能的壁紙,你必須指定是什麼使圖像成爲牆紙,否則你可以簡單地列出手機上的所有圖像。 – theomega

+0

默認情況下,Android自帶壁紙應用程序。它用作壁紙的圖片不是SD卡中的文件。相反,它們是apk中的資源。我想通過代碼訪問它們。謝謝。 – Ton

回答

4

所有的壁紙都位於啓動應用程序。由於發射器的名稱及其資源可能會因設備而異,因此無法創建可靠的方法來執行此操作。

有用的Android的壁紙位於Launcher2.apk:res/drawable- somedpi。在我的設備上,它們位於drawable-hdpi文件夾中,但在其他設備上可能會有所不同。

首先獲取啓動器(com.android.Launcher2.apk)的資源,如this中所述。

然後您可以使用類似於this問題中的方法列出資源。

我還沒有嘗試過這一切,所以它可能無法按預期工作。

+0

您可以安裝壁紙並刪除,然後獨立於啓動程序。所以檢查發射器包沒有幫助! – theomega

+0

如果您使用apktool反編譯Launcer2.apk,您會看到它包含壁紙。我不完全確定'安裝壁紙'是什麼意思。 – Thomas

+0

感謝您指點我的方向。我可以爲'com.android.launcher'獲得'Resources'(API級別7),但是在'res'dir中列出文件不會返回任何結果。我會繼續嘗試。 –

-2

只要找出它們被保存的位置並以這種方式訪問​​它們。

+4

你是什麼意思? – Ton

+1

這可能會作爲評論傳遞,但它肯定不是答案。抱歉! – kentcdodds