android– 自定义启动器中的绑定小部件

android– 自定义启动器中的绑定小部件,第1张

概述我在使用自定义启动器的主屏幕上添加小部件时遇到了一些问题.我已经能够使用AppWidgetManager生成要添加的小部件列表,并且我已经开发了将小部件添加到主屏幕的工作流程.代码不是下面的代码,但看起来如下所示:AppWidgetHostwidget_host=newAppWidgetHost(this,1);AppWidget

我在使用自定义启动器的主屏幕上添加小部件时遇到了一些问题.

我已经能够使用AppWidgetManager生成要添加的小部件列表,并且我已经开发了将小部件添加到主屏幕的工作流程.代码不是下面的代码,但看起来如下所示:

AppWidgetHost Widget_host = new AppWidgetHost(this, 1);AppWidgetManager Widget_manager = AppWidgetManager.getInstance(this);int Widget_ID = Widget_host.allocateAppWidgetID(); appwidgetproviderInfo Widget_provIDer = ... //from an array;Intent bindIntent = new Intent(AppWidgetManager.ACTION_APPWidget_BIND);bindIntent.putExtra(AppWidgetManager.EXTRA_APPWidget_ID, Widget_ID);bindIntent.putExtra(AppWidgetManager.EXTRA_APPWidget_PROVIDER, Widget_provIDer.provIDer);startActivityForResult(bindIntent, REQUEST_BIND_APPWidget);if (Widget_provIDer.configure != null) {    Intent intent = new Intent(AppWidgetManager.ACTION_APPWidget_CONfigURE);    intent.setComponent(Widget_provIDer.configure);    intent.putExtra(AppWidgetManager.EXTRA_APPWidget_ID, Widget_ID);    startActivityForResult(intent, REQUEST_CREATE_APPWidget);} else {    createWidget(Widget_ID);}

然后,我有一个onActivityResult方法,如果需要,可以导致小部件的配置,createWidget方法使用AppWidgetHost的createVIEw方法.

此工作流程有效,但ACTION_APPWidget_BIND意图要求用户绑定应用程序的权限,这有点烦人.我的理解是,只有系统应用程序可以请求此权限,并且我在运行应用程序时不会在未请求此权限的情况下绑定小部件.另一方面,我知道还有许多其他发射器,他们都可以无缝地添加小部件,所以必须有另一种方法.

任何建议将不胜感激!

干杯

解决方法:

希望这个问题仍然存在……

你在方法中做了太多的事情.在特定情况下,你会一个接一个地发动事件.我在androID上的工作时间不长,所以我不能告诉你,这是否可以.

而你总是在这里激发意图:

Intent bindIntent = new Intent(AppWidgetManager.ACTION_APPWidget_BIND);bindIntent.putExtra(AppWidgetManager.EXTRA_APPWidget_ID, Widget_ID);bindIntent.putExtra(AppWidgetManager.EXTRA_APPWidget_PROVIDER, Widget_provIDer.provIDer);startActivityForResult(bindIntent, REQUEST_BIND_APPWidget);

上述意图最可能导致问题.您可以事先检查,是否需要请求许可.你可以问这个例程:

Boolean callProvIDerIntent = false;if (checkCallProvIDerIntent){    callProvIDerIntent = true;    Method m = null;    try    {        m = AppWidgetManager.class            .getmethod("bindAppWidgetIDIfAllowed", new Class[]            { Integer.TYPE, Componentname.class });    }    catch (NoSuchMethodException e)    {    }    if (m != null)    {        try        {            callProvIDerIntent = !(Boolean) m             .invoke(mAppWidgetManager,                     appWidgetID,                     launcherAppWidgetInfo.provIDer);        }        catch (Exception e)        {        }    }}

这是虚拟代码.它使用反射,因为我在AndroID 2.3下.

总结

以上是内存溢出为你收集整理的android – 自定义启动器中的绑定小部件全部内容,希望文章能够帮你解决android – 自定义启动器中的绑定小部件所遇到的程序开发问题。

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

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

原文地址: http://outofmemory.cn/web/1106374.html

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

发表评论

登录后才能评论

评论列表(0条)

保存