如何按程序设置活动墙纸。我想为我的设备设置一个指定的活壁纸。我模仿LivePicker应用程序中的LiveWallpaperPreview.java。 我的代码是:
public void setLiveWallpaperClick(View v){
Intent intent = new Intent(WallpaperService.SERVICE_INTERFACE);
intent.setClassName("com.android.wallpaper", "com.android.wallpaper.galaxy.GalaxyWallpaper");
try {
mWallpaperManager.getIWallpaperManager().setWallpaperComponent(
intent.getComponent());
} catch (RemoteException e) {
e.printStackTrace();
// do nothing
} catch (RuntimeException e) {
e.printStackTrace();
}
finish();
} manifest.xml中的权限是:
<uses-permission android:name="android.permission.SET_WALLPAPER_COMPONENT" />
<uses-permission android:name="android.permission.BIND_WALLPAPER" />
<uses-permission android:name="android.permission.SET_WALLPAPER" />
但它在我的应用程序中不起作用。代码是对的吗?
答案 0 :(得分:3)
谢谢!我找到了根本原因:代码是对的。但是必须将apk推送到/ system / app目录,它才能正常工作。如果apk安装在/ data / app中,则无法正常工作。我认为/ system / app和/ data / app之间存在一些不同的权限。
答案 1 :(得分:0)
使用以下代码设置自定义动态壁纸:
意图意图=新 意图(WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER); intent.putExtra(WallpaperManager.EXTRA_LIVE_WALLPAPER_COMPONENT, new ComponentName(this,MyWallpaperService.class)); startActivity(意向);
获得@Judy
以上建议的其他权限此处MyWallpaperService是自定义壁纸服务。