Bir etkinlikten güncelleme yapmaya çalıştığım bir appwidget var.AppWidgetManager.getAppWidgetIds etkinliğinde boş bir liste döndürüyor
Bunu yapmak için appwidget kimliğine ihtiyacım var.
AppWidgetManager.getAppWidgetIds
kullanıyorum, ancak her zaman boş bir liste döndürür.
Ayrıca ComponentName
numaramın doğru olduğundan emin olmak için AppWidgetManager.getInstalledProviders
kullanıyorum, ancak yine de boş bir liste alıyorum.
Bu konuyla ilgili diğer tüm soruları gördüm, ama benim için çalışan bir şey bulamadım.
Bunu çözmenin başka bir yolu var mı? Widget güncellemek için başka bir yolu?
Kodum:
ComponentName name = new ComponentName(packageName, boardcastReceiverClass);
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(this);
int[] ids = appWidgetManager.getAppWidgetIds(name);
if (ids != null && ids.length > 0) {
getApplicationContext().sendBroadcast(getUpdateIntent(ids[0]));
}
teşekkürler.
UPDATE: AppWidgetProvider'ın bir kitaplık projesinde olduğunu belirtmeliyim. getInstalledProviders
ile aldığım ComponentName'e göre, uygulamanızın paket adını ve sınıf adını kütüphanenin paket adıyla kullandım.
pay kodunuzu ... –
getAppWidgetIds() kullanıcı/etkin Ana ekranda Widget kurmamış ise boş listesini döndürecektir. .. –
@GopalRao evet, biliyorum. Widget ana ekranda olduğunda test ettim. – Ran