Ho una appwidget che sto cercando di aggiornare da un'attività.AppWidgetManager.getAppWidgetIdI in attività restituisce una lista vuota
Per fare ciò, ho bisogno dell'ID appwidget.
Ho usato AppWidgetManager.getAppWidgetIds
ma restituisce sempre una lista vuota.
Ho anche utilizzato AppWidgetManager.getInstalledProviders
per verificare che il mio ComponentName
sia corretto, ma ottengo comunque una lista vuota.
Ho visto tutte le altre domande a riguardo, ma non sono riuscito a trovare qualcosa che funzionasse per me.
C'è un altro modo per risolvere questo? o un altro modo per aggiornare il widget?
Il mio codice:
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]));
}
Grazie.
UPDATE: Devo dire che il mio AppWidgetProvider è in un progetto di libreria. Secondo il ComponentName che ottengo con getInstalledProviders
, ho usato il nome del pacchetto della mia app e il nome della classe con il nome del pacchetto della libreria.
Condividi il tuo codice in cui si pensa l'errore è ... –
getAppWidgetIds() restituirà elenco vuoto se l'utente non ha attivato/installato il widget sulla schermata Home. .. –
@GopalRao si, lo so. L'ho provato quando il widget era sulla schermata principale. – Ran