假设我有一个Android项目,该项目具有可以添加到应用启动器中的appWidget。
该项目还有一个活动,显示我创建的appWidget。
探针:
对于启动器,appWidget可以完美运行,并且可以响应用户的点击,但是对于活动,仅显示它,就像预览一样。
我尝试(并成功)显示了其他appWidget,但它们也仅在显示中。
但是,单击按钮似乎具有单击样式效果,好像可以处理触摸事件一样。
请注意,除了用户点击之外,appWidget将来可能还会具有其他功能。
谁能告诉我该怎么办才能解决这个问题?甚至有可能做这样的事情,否则,为什么做(因为它是应用程序的一部分)?
请注意,由于appWidget可能是一个复杂的组件,因此我希望对appWidget进行尽可能少的更改。
这是获取appWidget视图以显示它的代码段:
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 - android appWidget-在没有用户确认的情况下放置我自己的appWidget,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9215124/