是否有可能使用一些代码设置动态壁纸?例如,我想告诉我的用户一个动态壁纸是可用的,"单击此处设置"。
是否有可能使用一些代码设置动态壁纸?例如,我想告诉我的用户一个动态壁纸是可用的,"单击此处设置"。
现在有两种方法可以实现这一点,因为Jelly Bean提供了一种直接设置动态壁纸的方式。这个样板代码将选择可用的最佳方法。
Intent i = new Intent();
if(Build.VERSION.SDK_INT > 15){
i.setAction(WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER);
String p = HypercaneWallpaperService.class.getPackage().getName();
String c = HypercaneWallpaperService.class.getCanonicalName();
i.putExtra(WallpaperManager.EXTRA_LIVE_WALLPAPER_COMPONENT, new ComponentName(p, c));
}
else{
i.setAction(WallpaperManager.ACTION_LIVE_WALLPAPER_CHOOSER);
}
getActivity().startActivityForResult(i, 0);
好的,为了避免我的过时回答被踩,请查看下面Error 454的回答,他提供了一种更为健壮的解决方案,可以直接将用户发送到Jelly Bean及更新设备上的墙纸预览屏幕。
========================================
以下是如何启动墙纸选择器,用户可以从中选择您的壁纸。Toast只是一种向用户解释正在发生什么的方式。
Toast toast = Toast.makeText(this, "Choose '<WALLPAPER NAME>' from the list to start the Live Wallpaper.",Toast.LENGTH_LONG);
toast.show();
Intent intent = new Intent();
intent.setAction(WallpaperManager.ACTION_LIVE_WALLPAPER_CHOOSER);
startActivity(intent);