是否有任何迹象表明我的Android appwidget已安装"?

时间:2014-05-27 08:19:18

标签: java android android-widget

我用appwidget写了一个Android应用程序。

我想在我的代码中执行此操作:

if (widget_is_used_by_user)

有没有办法让我知道用户是否将小部件放在主屏幕上?

2 个答案:

答案 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版本。