最近做动态壁纸项目,需要设置在自己的App上设置动态壁纸。自己查找百度(我查到最后还是没查到,差评!差评!差评!)和Google,最后在stackoverflow上面找到了调用方法
实现如下:
首先,动态壁纸实际上是一个Service服务,他在后台一直运行着,然后根据返回的Engine一直渲染,在Activity后面显示着,如果想知道可以试试把Activity样式设置成BaseWallpaperTheme就知道了。所以你首先得获取系统的所有动态壁纸的服务
代码如下:
List<ResolveInfo> list = mPackageManager.queryIntentServices(new Intent(WallpaperService.SERVICE_INTERFACE), PackageManager.GET_META_DATA);
展示出所有的动态壁纸服务:

然后调用如下代码:
注意!resolveInfo.getComponent() 就是上面查出来的动态壁纸服务
Intent intent = new Intent(WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER);
intent.putExtra(WallpaperManager.EXTRA_LIVE_WALLPAPER_COMPONENT, resolveInfo.getComponent());
startActivity(intent);
运行结果如下:

ok,就是这么简单!
网友评论