Sto scrivendo una scheda madre Android che consente all'utente di creare più widget desktop, uno per ogni suono. Sto usando un'attività per l'utente per scegliere il suono per il quale vuole creare il widget. Per ogni widget creato, memorizzo una preferenza condivisa nel formato key => "WIDGET_FILENAME_"+widgetId, value=> fileName
Per riprodurre i suoni, ho eseguito l'override del metodo onRecieve
nella classe widgetProvider. Quando il widget del desktop viene cliccato, si innesca una trasmissione a questo metodo, wich ottiene il widget di ID dal intento e quindi carica la preferenza condivisa associata con il widget:
Android - Più appWidgets che riproducono suoni diversi
int appWidgetId = intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID,
AppWidgetManager.INVALID_APPWIDGET_ID);
Il problema è: Il widgetId è sempre uguale, non si fa clic sul widget, causando la riproduzione dello stesso suono.
Qualche idea o guida su questo?
Ottimo! mi ha davvero aiutato a capire lo stesso problema che avevo. La parte interessante è che ciò che ha fatto la differenza è stato utilizzare l'appWidgetId come requestCode mentre nella documentazione dice che non viene mai usato ... – Muzikant
@Rabi, hai un codice più completo che potresti condividere? Ho cercato di implementarlo nel mio codice e non funziona. http://stackoverflow.com/questions/10607518/android-appwidget-multiple-instances – MrGibbage