Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 以编程方式设置实时墙纸_Android_Live Wallpaper - Fatal编程技术网

Android 以编程方式设置实时墙纸

Android 以编程方式设置实时墙纸,android,live-wallpaper,Android,Live Wallpaper,是否可以使用一些代码行设置实时墙纸。例如,我想告诉我的用户一张实时壁纸是可用的“单击此处进行设置”。好吧,这样我就不会因为过时的答案而获得否决票。请参阅下面错误454的答案,以获得更强大的解决方案,该解决方案将用户直接发送到Jelly Bean及以上设备上的墙纸预览屏幕 ======================================== 以下是如何启动墙纸选择器,用户可以从中选择您的墙纸。祝酒词只是向用户解释发生了什么事情的一种方式 Toast toast = Toast.make

是否可以使用一些代码行设置实时墙纸。例如,我想告诉我的用户一张实时壁纸是可用的“单击此处进行设置”。

好吧,这样我就不会因为过时的答案而获得否决票。请参阅下面错误454的答案,以获得更强大的解决方案,该解决方案将用户直接发送到Jelly Bean及以上设备上的墙纸预览屏幕

========================================

以下是如何启动墙纸选择器,用户可以从中选择您的墙纸。祝酒词只是向用户解释发生了什么事情的一种方式

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);
Toast-Toast=Toast.makeText(这是“从列表中选择“”以开始实时墙纸”,Toast.LENGTH\u LONG);
toast.show();
意图=新意图();
intent.setAction(墙纸管理器.ACTION\u LIVE\u墙纸\u选择器);
星触觉(意向);

现在有两种方法可以实现这一点,因为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);

我认为这是不可能的,你可以启动墙纸选择器,但不能直接设置墙纸。所以我想我的下一个问题是。。如何使用代码启动?似乎可以直接设置墙纸:@mahboudz这只适用于静态墙纸(图像)而不适用于动态墙纸。如果我不拥有该墙纸怎么办?我是说如何使用我的应用程序设置另一张壁纸?你能检查一下这个吗?我的墙纸服务是在另一个包比主包。我必须提供的正确包是:String p=this.getContext().getPackageName();我可以在没有用户交互的情况下更改它吗?你能检查一下这个吗?不,你不能。Error454的答案非常接近,没有根。但我不知道你会怎么做。也许在XDA上四处打听一下。