Android 如何通过程序设置活动墙纸?
我想为我的设备设置一个指定的实时壁纸,因此我模仿LivePicker应用程序中的liveWallparPreview.java。 我的代码是:Android 如何通过程序设置活动墙纸?,android,Android,我想为我的设备设置一个指定的实时壁纸,因此我模仿LivePicker应用程序中的liveWallparPreview.java。 我的代码是: public void setLiveWallpaperClick(View v) { Intent intent = new Intent(WallpaperService.SERVICE_INTERFACE); intent.setClassName("com.android.wallpaper", "com.android.wal
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" />
但它在我的应用程序中不起作用。代码正确吗?谢谢!我已经找到了根本原因:代码是正确的。但是apk必须被推到/system/app目录,它才能工作。如果apk安装在/data/app中,则无法工作。我认为/system/app和/data/app之间有一些不同的权限 使用以下代码设置自定义实时墙纸: 意图=新的 意图(墙纸管理器、行动、改变、生活、墙纸); intent.putExtra(墙纸管理器.EXTRA\u LIVE\u墙纸\u组件, 新组件名(this,mywallperService.class));星触觉(意向) 经@Judy建议的额外许可
这里的MyWallperService是自定义墙纸服务。是否用所需墙纸替换当前墙纸?例如,如果您下载了另一张壁纸,并且您知道其软件包名称,您可以通过应用程序设置该名称吗?那么解决方案是什么??