我用appwidget写了一个Android应用程序。
我想在我的代码中执行此操作:
if (widget_is_used_by_user)
有没有办法让我知道用户是否将小部件放在主屏幕上?
答案 0 :(得分:2)
如果您想知道Widget是否已安装,请在onEnabled()中输入som e Log或其他任何内容:
public void onEnabled(Context context){
super(context);
Log.d("WIDGET","WIDGET ENABLED);
}
此外,有时需要在清单中的接收器内设置操作。我看到了一些关于它的帖子,但是在我的小部件中,我也收到了消息而没有设置动作:
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
<action android:name="android.appwidget.action.APPWIDGET_ENABLED" />
<action android:name="android.appwidget.action.APPWIDGET_DELETED" />
<action android:name="android.appwidget.action.APPWIDGET_DISABLED" />
</intent-filter>
答案 1 :(得分:1)
如果你不想像Opiatefuchs所说的那样自己跟踪它们,那么很遗憾没有办法确定。
您可以查询AppWidgetManager
以获取可用的appwidget ID列表,如下所示:
ComponentName widgetProvider = new ComponentName(this, "appwidget_class_name");
int[] appWidgetIds = AppWidgetManager.getInstance(this).getAppWidgetIds(widgetProvider);
for (int awId : appWidgetIds) {
// If there is any appwidget on the home screen, its ID should be in the list
}
我说没有确定的方法,因为幻影 appwidget ID的问题(由AppWidgetHost创建的ID没有&#34;真正的&#34;小部件存在在主屏幕上)仍然是现实,即使是最近的Android版本。