Escribo una caja de resonancia de Android que permite al usuario crear múltiples widgets de escritorio, uno para cada sonido. Estoy usando una actividad para que el usuario elija para qué sonido quiere crear el widget. Para cada widget creado, guardo una preferencia compartida en el formato de key => "WIDGET_FILENAME_"+widgetId, value=> fileName
Para reproducir los sonidos, anulé el método onRecieve
en la clase widgetProvider. Cuando se hace clic en el widget de escritorio, se dispara una difusión a este método, cosa que obtiene el ID widget de la intención y luego carga la preferencia compartida asociado con el widget:
Android - Múltiples appWidgets ejecutando diferentes sonidos
int appWidgetId = intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID,
AppWidgetManager.INVALID_APPWIDGET_ID);
El problema es: El moduloid es siempre lo mismo, no se hace clic en ningún otro widget, lo que hace que se reproduzca el mismo sonido.
¿Alguna idea u orientación sobre esto?
¡Genial! realmente me ayudó a resolver el mismo problema que tuve. Lo interesante es que lo que marcó la diferencia fue el uso de appWidgetId como requestCode, mientras que en la documentación dice que nunca se usó ... – Muzikant
@ Rabi, ¿tiene un código más completo que podría compartir? He intentado implementar esto en mi código y simplemente no está funcionando. http://stackoverflow.com/questions/10607518/android-appwidget-multiple-instances – MrGibbage