我想创建自己的LiveWallpaperPreview,即向用户显示所选动态壁纸的全屏预览(没有库存操作系统预览所具有的“设置壁纸”和“设置”按钮)。 / p>
从2.1(android.git.kernel.org)重建LivePicker-Class效果很好,所以我可以让用户选择要预览的壁纸,但实际的LiveWallpaperPreview-Class尝试导入以下私有接口/类:
import android.service.wallpaper.IWallpaperConnection;
import android.service.wallpaper.IWallpaperService;
import android.service.wallpaper.IWallpaperEngine;
import android.service.wallpaper.WallpaperSettingsActivity;
有没有办法在我的应用程序中显示LiveWallpaper而无需使用私有API(我显然不想这样做)?
谢谢!
尼克
答案 0 :(得分:1)
你不能这样做。动态壁纸选择器是Android操作系统的一部分,无法替换。
答案 1 :(得分:0)
我的想法是我不需要访问IWallpaperConnection等,但我可以在绑定服务上使用反射。
然而,我明白了 WARN / ActivityManager(96):权限拒绝:从pid = 4196访问服务ComponentInfo {com.android.wallpaper / com.android.wallpaper.grass.GrassWallpaper},uid = 10070需要android.permission.BIND_WALLPAPER
查看壁纸需要权限android.permission.BIND_WALLPAPER,这是普通应用程序无法使用的系统权限。
编辑: 创建了一个名为Current Wallpaper的应用程序,可在市场上买到 https://market.android.com/details?id=com.elsewhat.android.currentwallpaper
它基本上在独立应用中显示当前壁纸,并允许您通过意图更改壁纸到标准壁纸选择器。
该应用使用主题android:theme =“@ android:style / Theme.Wallpaper.NoTitleBar.Fullscreen”