gpt4 book ai didi

android appWidget - 在没有用户确认的情况下放置我自己的appWidget

转载 作者:行者123 更新时间:2023-11-30 04:21:20 25 4
gpt4 key购买 nike

假设我有一个 android 项目,它有可以添加到应用程序启动器的可用 appWidget。该项目还有一个显示我创建的 appWidget 的 Activity 。

问题:对于启动器,appWidget 工作完美,它响应用户点击,但对于 Activity ,它只显示,就好像它是预览一样。

我已经尝试(并成功)展示了其他 appWidgets,但它们也只是被展示了。但是,单击按钮似乎具有单击样式效果,好像可以处理触摸事件一样。请注意,除了用户点击之外,appWidget 将来可能具有额外的功能。

谁能告诉我我该怎么做才能处理这个问题?是否有可能做这样的事情,如果不能,为什么(因为它是应用程序的一部分)?请注意,我想对 appWidget 做尽可能少的更改,因为 appWidget 可能很复杂。

这是获取 appWidget View 以显示它的代码段:

public View fetchAppWidgetView(final Context context, final ComponentName componentName)
{
final AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
_appWidgetHost = new AppWidgetHost(context, INSTANCES_ID_PROVIDER);
// get appWidgetInfo :
final List<AppWidgetProviderInfo> infos = appWidgetManager.getInstalledProviders();
AppWidgetProviderInfo appWidgetInfo = null;
for (final AppWidgetProviderInfo info:infos)
if (info.provider.getClassName().equals(componentName.getClassName()) && info.provider.getPackageName().equals(componentName.getPackageName()))
{
appWidgetInfo = info;
break;
}
if (appWidgetInfo == null)
return null;
final int appWidgetId = _appWidgetHost.allocateAppWidgetId();
// create and put the new widget:
final AppWidgetHostView newWidget = _appWidgetHost.createView(context, appWidgetId, appWidgetInfo);
newWidget.setAppWidget(appWidgetId, appWidgetInfo);
_appWidgetHost.startListening();
return newWidget;
}

public void startListening()
{
//this method is called on the onStart() method of the activity
_appWidgetHost.startListening();
}

最佳答案

这是出于安全原因 - 您的应用没有放置应用小部件的权限在屏幕上没有用户知识。你唯一的方法就是让用户选择列表中的小部件,或者,您的应用程序必须安装在/system/app 文件夹中,并且通过这种方式,该应用程序是具有所有必需权限的系统应用程序。

关于android appWidget - 在没有用户确认的情况下放置我自己的appWidget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9215124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com