Eliminando AppWidgets programáticamente

Me está costando mucho tiempo averiguar cómo eliminar AppWidget de la pantalla de inicio mediante progtwigción (es decir, sin que el usuario arrastre uno a la papelera). Como ejemplo, considere una aplicación que puede tener varias cuentas, con cualquier cantidad de widgets para cada cuenta: una vez que se elimina una cuenta, también se debe eliminar el widget.

Intenté seguir un oscuro ejemplo de http://www.netmite.com/android/mydroid/cupcake/frameworks/base/services/java/com/android/server/AppWidgetService.java , pero eso no parece incluso desencadenar OnDeleted, y mucho menos eliminar el AppWidget de la pantalla de inicio.

Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_DELETED); intent.setComponent(info.componentName); // references AppWidgetProvider's class intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widgetId); sendBroadcast(intent); 

¿Alguien tiene algún consejo sobre cómo se puede lograr esto? Un ejemplo serían las rodillas de la abeja. Gracias.

No puede agregar o eliminar widgets de la aplicación desde la pantalla de inicio. Solo el usuario puede hacer eso.

Los widgets de aplicaciones vinculados a una cuenta eliminada podrían mostrar una cuenta diferente o adoptar un aspecto “(cuenta eliminada)” que activaría al usuario para deshacerse del widget de la aplicación o reconfigurarlo.

Estoy bastante seguro de que esto debería funcionar:

 int[] appWidgetIds = appWidgetManager.getAppWidgetIds(new ComponentName("com.example", "com.example.Widget")); AppWidgetHost host = new AppWidgetHost(ctx, 0); host.deleteAppWidgetId(appWidgetIds[0]);