I am currently learning about widgets in Android.
I want to create a WIFI widget that will display the SSID, the RSSI
(Signal) level.
But I also want to be able to send it data from a service I am running
that calculates the Quality of Sound over wifi.
Here is what I have after some reading and a quick tutorial:
---
public class WlanWidget extends AppWidgetProvider{
RemoteViews remoteViews;
AppWidgetManager appWidgetManager;
ComponentName thisWidget;
WifiManager wifiManager;
public void onUpdate(Context context, AppWidgetManager
appWidgetManager,
int[] appWidgetIds) {
Timer timer = new Timer();
timer.scheduleAtFixedRate(new WlanTimer(context,
appWidgetManager),
1, 10000);
}
private class WlanTimer extends TimerTask{
RemoteViews remoteViews;
AppWidgetManager appWidgetManager;
ComponentName thisWidget;
public WlanTimer(Context context, AppWidgetManager appWidgetManager)
{
this.appWidgetManager = appWidgetManager;
remoteViews = new RemoteViews(context.getPackageName(),
R.layout.widget);
thisWidget = new ComponentName(context,
WlanWidget.class);
wifiManager =
(WifiManager)context.getSystemService(Context.WIFI_SERVICE);
}
@Override
public void run() {
remoteViews.setTextViewText(R.id.widget_textview,
wifiManager.getConnectionInfo().getSSID());
appWidgetManager.updateAppWidget(thisWidget,
remoteViews);
}
}
---
The above seems to work ok, it updates the SSID on the widget every 10
seconds.
However what is the most efficent way to get the information from my
service that will be already running to update periodically on my
widget?
Also is there a better approach to updating the the widget rather than
using a timer and timertask? (Avoid polling)
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en