2010-05-01 81 views
1

我想創建我自己的LiveWallpaperPreview,即向用戶顯示所選動態壁紙的全屏預覽(沒有「設置壁紙」和「設置」按鈕,即股票操作系統預覽有)。創建自己的LiveWallpaperPreview?

從2.1(android.git.kernel.org)重建LivePicker級的偉大工程,所以我能夠讓用戶選擇一個壁紙預覽,但實際LiveWallpaperPreview級嘗試導入下面的私有接口/類:

import android.service.wallpaper.IWallpaperConnection;
import android.service.wallpaper.IWallpaperService;
import android.service.wallpaper.IWallpaperEngine;
import android.service.wallpaper.WallpaperSettingsActivity;

有什麼辦法可以在我的應用程序中顯示LiveWallpaper而不訴諸使用私有API(我顯然不想這麼做)?

謝謝!

尼克

回答

1

你不能這樣做。動態壁紙選擇器是Android操作系統的一部分,無法替換。

+0

嗨羅曼, 謝謝您的回答。我不想替換選擇器,僅僅是爲我自己的應用程序使用它:我只想爲我的應用程序的用戶顯示動態壁紙。這不可能嗎? 謝謝, 尼克 – Nick 2010-05-01 19:06:11

+0

我剛纔發現,你可以使用Theme.Wallpaper作爲你的活動的主題來顯示當前正在使用的LW - 比我想象的要簡單得多:-)!但是,是否可以使用此方法顯示用戶已安裝的其他壁紙(與當前選擇的壁紙不同)? – Nick 2010-05-01 19:26:01

+0

抱歉,沒有辦法做到這一點。 – hackbod 2010-05-01 23:08:12

0

展望同樣的問題,也碰到了死衚衕。

我的想法是,我不需要訪問IWallpaperConnection等,但我可以在綁定服務上使用反射。

不過,我得到 WARN/ActivityManager(96):權限拒絕:訪問服務ComponentInfo {com.android.wallpaper/com.android.wallpaper.grass.GrassWallpaper}從PID = 4196,UID = 10070需要機器人。權限.BIND_WALLPAPER

權限android.permission.BIND_WALLPAPER是查看壁紙所必需的,它是系統權限不可用於普通應用程序。

編輯: 創建一個名爲當前壁紙的應用程序,可在市場上 https://market.android.com/details?id=com.elsewhat.android.currentwallpaper

它主要顯示在一個獨立的應用程序的當前壁紙,並允許您通過一個意圖改變牆紙的標準壁紙選擇。

的應用程序使用Android的主題:主題= 「@安卓風格/ Theme.Wallpaper.NoTitleBar.Fullscreen」