android – 如何从应用程序转移到动态壁纸预览?

android – 如何从应用程序转移到动态壁纸预览?,第1张

概述我一直在寻找一个具体的例子,无法在任何地方找到它. 我想要做的是:从我的应用程序点击一个按钮,并移动到我的应用程序动态壁纸的动态壁纸预览,所以用户可以选择激活它. 现在我已经在线阅读了,我将使用WallpaperManager’s ACTION_CHANGE_LIVE_WALLPAPER与EXTRA_LIVE_WALLPAPER_COMPONENT指向我的LiveWallpapers Compon 我一直在寻找一个具体的例子,无法在任何地方找到它.

我想要做的是:从我的应用程序点击一个按钮,并移动到我的应用程序动态壁纸的动态壁纸预览,所以用户可以选择激活它.

现在我已经在线阅读了,我将使用WallpaperManager’s ACTION_CHANGE_liVE_WALLPAPER与EXTRA_liVE_WALLPAPER_COMPONENT指向我的liveWallpapers Componentname.

这是我迄今为止的代码.有谁知道我在做错什么?到目前为止,我点击按钮,没有任何反应…(我记录它实际上达到这个代码).

Intent i = new Intent();i.setAction(WallpaperManager.ACTION_CHANGE_liVE_WALLPAPER);i.putExtra(WallpaperManager.EXTRA_liVE_WALLPAPER_COMPONENT,"com.example.myapp.livewallpaper.liveWallpaperService");startActivity(i);

如果您需要任何我忘记发布的信息让我知道.

*我也知道这是API 16,这只是我的情况,当手机是API 16

@R_419_6120@ 我也找不到一个例子.我注意到的第一件事是EXTRA_liVE_WALLPAPER_COMPONENT不需要一个String,而是一个Componentname.我使用Componentname的第一个剪辑如下所示:
Componentname component = new Componentname(getPackagename(),"liveWallpaperService");intent = new Intent(WallpaperManager.ACTION_CHANGE_liVE_WALLPAPER);intent.putExtra(WallpaperManager.EXTRA_liVE_WALLPAPER_COMPONENT,component);startActivityForResult(intent,REQUEST_SET_liVE_WALLPAPER);

那没有削减它,所以我挖掘了AndroID源代码,并在liveWallpaperChange.java中找到以下内容:

Intent queryIntent = new Intent(WallpaperService.SERVICE_INTERFACE);queryIntent.setPackage(comp.getPackagename());List<ResolveInfo> List = getPackageManager().queryIntentServices( queryIntent,PackageManager.GET_Meta_DATA);

用上面的一点调试一下,这是我的最终形式…

Componentname component = new Componentname(getPackagename(),getPackagename() + ".liveWallpaperService");intent = new Intent(WallpaperManager.ACTION_CHANGE_liVE_WALLPAPER);intent.putExtra(WallpaperManager.EXTRA_liVE_WALLPAPER_COMPONENT,REQUEST_SET_liVE_WALLPAPER);

关键是Componentname的第二个参数.

在技​​术上,我的最终形式首先支持新方法的层次结构,其次是旧的,其次是Nook tablet / Nook color的具体意图:

Intent intent;// try the new Jelly Bean direct androID wallpaper chooser firsttry {    Componentname component = new Componentname(getPackagename(),getPackagename() + ".liveWallpaperService");    intent = new Intent(WallpaperManager.ACTION_CHANGE_liVE_WALLPAPER);    intent.putExtra(WallpaperManager.EXTRA_liVE_WALLPAPER_COMPONENT,component);    startActivityForResult(intent,REQUEST_SET_liVE_WALLPAPER);} catch (androID.content.ActivityNotFoundException e3) {    // try the generic androID wallpaper chooser next    try {        intent = new Intent(WallpaperManager.ACTION_liVE_WALLPAPER_CHOOSER);        startActivityForResult(intent,REQUEST_SET_liVE_WALLPAPER);    }     catch (androID.content.ActivityNotFoundException e2) {        // that Failed,let's try the nook intent        try {            intent = new Intent();            intent.setAction("com.bn.nook.CHANGE_WALLPAPER");            startActivity(intent);        }        catch (androID.content.ActivityNotFoundException e) {            // everything Failed,let's notify the user            showDialog(DIALOG_NO_WALLPAPER_PICKER);        }    }}
总结

以上是内存溢出为你收集整理的android – 如何从应用程序转移到动态壁纸预览?全部内容,希望文章能够帮你解决android – 如何从应用程序转移到动态壁纸预览?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1132894.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存