Hey there,
I'm working on a widget that will change the data it is displaying when a user taps on it. This would normally be easy to deal with, but my app widget provider is handling multiple widget instances that have different sets of data. With that being said, when a user taps on the widget, a PendingIntent is launched that calls the changeData() method. Inside the intent that is launched is where I store the widget ID so changeData() knows which data set to use. At first I was storing widget IDs in the intent's extras, but I found out that there is a bug in how Android widgets handled widget intent extras so now I am trying to store the widget by passing a URL using the setData() method(formatted like content:widgetId I.E. content:24, etc.).
This is how I am setting the data for the PendingIntent:
Intent changeData = new Intent("com.tonycosentini.mintdroid.CHANGE_DATA");
changeData.setData(Uri.parse("content:" + currentWidgetId));
PendingIntent changeDataPendingIntent = PendingIntent.getBroadcast(this, 0, changeData, 0);
However once I try to test this, the onRecieve() method that is usually called when a widget is tapped is no longer called. Is there something I need to setup in my Android Manifest file for this work properly or is there something I'm doing completely wrong?
Thanks for taking the time to read this, Tony