Android :: How To Update Widget Dynamically?
May 28, 2010
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 AppWidget Provider {RemoteViews remoteViews; AppWidgetManager appWidgetManager; Component Name thisWidget; WifiManager wifiManager; public void onUpdate(Context context, AppWidgetManager appWidget Manager, int[] appWidgetIds) { timer timer = new Timer(); timer.schedule AtFixed Rate(new WlanTimer(context, appWidgetManager), 1, 10000); 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?
View 12 Replies
May 28, 2010
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)UPDATE As per Karan's suggestion I have added the following code in my Service: RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget);
ComponentName thisWidget = new ComponentName( context, WlanWidget.class );
remoteViews.setTextViewText(R.id.widget_QCLevel, " " + qcPercentage);
AppWidgetManager.getInstance( context ).updateAppWidget( thisWidget, remoteViews );This gets run everytime the RSSI level changes but it still never updates the TextView on my widget, any ideas why?
View 2 Replies
View Related
Nov 8, 2010
I am a new developer in android, and I see some examples about activity, but I don't know How can I create the widget dynamically?
View 2 Replies
View Related
Apr 2, 2010
How do I add a View dynamically in an android widget? I realize that the RemoteViews works as a container of updates, but the RemoteViews.addView is only available on API level 7 (and I want my widget to work on HTC Hero phones, which has API level 3).
View 1 Replies
View Related
Jul 4, 2009
I am working a widget... I'd like to change my widget background image dynamically, is it possible? I tried theme & style, it doesn't want to work. It doesn't show any background image (see code sample below). I tried RemoteViews.setImageViewResource on an ImageView filling the widget, but i doesn't strech my 9patch image correctly (and it doesn't seems to change background, it add another image). Is there a solution? Additionnal question : is it possible to use an external (sdcard) 9patch image as background? if yes: how?
View 2 Replies
View Related
Sep 22, 2010
Is there a way to dynamically change the size of a widget? Can an app have multiple widgets?
View 3 Replies
View Related
Nov 11, 2010
Is there a good way to add new image resources(from SD card) to a gallery widget at runtime?
View 1 Replies
View Related
Feb 3, 2010
We would like to enable or disable widgets via code. When we say "disable" we mean that a widget which is registered in an application should not show up in the list of widgets available to the user when they try to add a widget to their home screen. This question has been asked, unfortunately, many times without answer. There was one response by Dianne Hackborn to a separate widget question which suggested that it was possible to use the package manager to disable widgets.
View 2 Replies
View Related
Feb 6, 2010
We would like to enable or disable widgets via code. When we say "disable" we mean that a widget which is registered in an application should not show up in the list of widgets available to the user when they try to add a widget to their home screen. This question has been asked, unfortunately, many times without
answer.
View 1 Replies
View Related
Mar 5, 2010
I am writing a home screen widget. Is it possible to add a View, e.g. ImageView, to a home screen widget through RemoteViews? I want to generate the views for the home screen widget dynamically.
updateViews = new RemoteViews(context.getPackageName(), R.layout.widget_news);
updateViews.setTextViewText(R.id.widget_title, mTitle);
updateViews.setImageViewBitmap(R.id.widget_picture,
BitmapFactory.decodeByteArray(image, 0, image.length));
My code is like above. But we I call updateViews.addView(aView), my IDE didn't allow me to do that and give me an compile error.
View 1 Replies
View Related
Dec 9, 2009
Code...
I cannot find any information on how to change or hide the background image.
View 7 Replies
View Related
Jul 22, 2009
i am using TableLayout and i am adding row dynamically. when the all the row is created after that i want to update that row one by one mean i want to add image in that row but problem is what i am not getting any row id or any reference of specific row due to this i unable to update the row
View 2 Replies
View Related
Mar 19, 2010
I have a problem with adding new items to ListView.
I use custom adapter MyListAdapter. I do that way:
CODE:...................
View 7 Replies
View Related
Dec 1, 2009
I have a database that gets updated by a background thread. Is is possible for the UI ouput(using a listview) to change when a database entry is added/deleted? I've seen examples of using SimpleCursorAdapter and listViewAdapters and I'm not sure which to use and if it would even work.
I found an "efficient" listViewAdapter which would work great for me since it doesn't call findViewById often and I can change the data structure to hold exactly what I need, but I don't know how to hook it into my database adapter so it dynamically updates the output when there is a database change. Example: http://www.androidsnippets.org/snippets/125/
View 1 Replies
View Related
May 1, 2010
I can create a static widget without thinking, I can even create a widget like the analogue clock widget that will update itself, however, I can not for the life of me figure out how to create a widget that reacts to when a user clicks on it. Here is the best code sample that the developer documentation gives to what a widget activity should contain (the only other hint being the API demos, which only creates a static widget):
public class ExampleAppWidgetProvider extends AppWidgetProvider {
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
final int N = appWidgetIds.length;
// Perform this loop procedure for each App Widget that belongs to this provider
for (int i=0; i<N; i++) {
int appWidgetId = appWidgetIds[i];
// Create an Intent to launch ExampleActivity
Intent intent = new Intent(context, ExampleActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
// Get the layout for the App Widget and attach an on-click listener to the button
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.appwidget_provider_layout);
views.setOnClickPendingIntent(R.id.button, pendingIntent);................
View 2 Replies
View Related
Aug 22, 2010
I will like to know if we can continuously call some service for fetching results and displaying in Autocomplete list.I have one screen with the text box and when user starts entering in that textbox the autocomplete should get filled with the data. The data will not be hardcoded and will be fetched through http connection.I think I need to call http connection in onTextChanged method of Edittext but is that the perfect solution.Moreover, should this type of implementation done in mobile application. Since, this feature is web based. Can this be done in mobile application too?
View 1 Replies
View Related
Nov 27, 2010
data monitor widget missing after update to 2.1-xperia x8...any ideas?
View 1 Replies
View Related
Aug 9, 2010
I initialize some arrays in an onUpdate() method and after that, using an intent and a button, I try to call onReceive() function which runs fine but cannot access arrays set in onUpdate() method. Why is that? Those array's are object variables and are declared public.Am I missing something?package net.aerosoftware.widgettest;
import java.util.HashMap;
import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import android.widget.RemoteViews;
public class WidgetTest extends AppWidgetProvider { public static String ACTION_WIDGET_RECEIVER = "ActionReceiverWidget";
public HashMap<Integer, String> channelsImages;
@Overridepublic void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds)
{ Log.e("UPDATE", "Start");
RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.main);
channelsImages = new HashMap<Integer, String>();
channelsImages.put(0, "one");
channelsImages.put(1, "two");
Intent active = new Intent(context, WidgetTest.class);
active.setAction(ACTION_WIDGET_RECEIVER);
PendingIntent actionPendingIntent = PendingIntent.getBroadcast(context, 0, active, 0);
remoteViews.setOnClickPendingIntent(R.id.buttonclick, actionPendingIntent);
super.onUpdate(context, appWidgetManager, appWidgetIds);
appWidgetManager.updateAppWidget(appWidgetIds, remoteViews);
Log.e("UPDATE", "End");
} @Override public void onReceive(Context context, Intent intent)
{ Log.e("RECEIVE", "Start 2");
if (intent.getAction().equals(ACTION_WIDGET_RECEIVER))
try Log.e("SIZE", "Size Of channel array: "+channelsImages.size());
} catch(Exception e)
Log.e("ON_RECIEVE_ERROR", " "+e.getMessage());
super.onReceive(context, intent);
Log.e("RECEIVE", "End");
View 2 Replies
View Related
May 12, 2010
Does anyone know if the 2.2 update is going to bring HTC sense along with the support of flash player? And if so, is that how I acquire this weather widget?>>>>[follow link]> http://www.gadgetsdna.com/motorola-droid-running-android-2-1-and-htc-sense/1572/>>
View 4 Replies
View Related
May 18, 2010
I have 2 questions about widgets update
I have 2 buttons and i need to change one button text when i press the other one, how can i do this?
The first time i open the widget it calls the onUpdate method, but it never calls it again. I need to update the widget every 2 seconds and i have this line in the xml.
android:updatePeriodMillis="2000"
Do i need a service or should it works just with the updatePeriodMillis tag?
onUpdate method
CODE:..................
View 2 Replies
View Related
Oct 6, 2010
Can anyone tell me the best way to update widget every minute. Now I'm using thread inside the AppWidget, but sometimes i get error FAILED BINDER TRANSACTION !!! After that error, i always got a lot of error like that all the time and i can't change the view in my widget again.
View 1 Replies
View Related
Sep 22, 2009
I have been looking for a way to update a widget asynchronously, for example, when the phone receives a text message. I have a broadcast receiver set up with code that runs upon receiving a message. I also have an AppWidgetProvider that is set up and running. It seems like the *only* way a widget can be updated is upon its interval, or when the user interacts with it. Is there any way to update a widget upon a system event?
View 6 Replies
View Related
Nov 1, 2010
I have a widget, its setup so that when I click on it, it opens some settings in an activity.
CODE:................
This configures some settings for the application. What I want to achieve is to have the widget update its view to reflect the changed settings when the Activity I launch closes. Using the update interval or any other type of polling isn't appropriate for this.
I've seen a couple places here and in the android docs this code used:
CODE:...................
But I don't know how to get the mAppWidgetId value. I tried following the example for a widget configuration activity here http://developer.android.com/guide/topics/appwidgets/index.html, but in the following code,
CODE:............
Extras is always null, so I never get the AppWidgetID.
View 1 Replies
View Related
Nov 8, 2010
I have added a widget and instead of updating it every xxx minutes, i want to update it only if in my activity something is changed. But how can i call the onUpdate Routine of my widget from my activity?
View 3 Replies
View Related
Mar 26, 2010
I have a widgett that supports for many languages, but if the user change the language in Settings, my widget don't update.. Only works, if I close it and open again, or rebook the handset..
View 2 Replies
View Related
Apr 22, 2009
Depending on what I do in my application, I might want to force an update on my widget. I've have had a poke around and can't seem to find any API for doing a manual update. At the moment, I have a function that sends a broadcast and my onReceive does this:
CODE:...............
Is there a proper way to do this, which sents the int array to the correct values? Or do I have to do it like this instead?
View 16 Replies
View Related
Mar 10, 2010
I'm going to create widget which needs to update its content every minute (it shows time-related data).
However, there is no need to update widget if it is currently invisible, which means:
screen is turned off
another app is running
widget is placed on another (invisible) home screen tab
What is the best way to update only visible widget every minute - without waking up device nor doing unnecessary computations? After widget becomes visible, small lag before update is acceptable.
View 2 Replies
View Related
May 1, 2010
I respond to a button press on my appwidget in the onreceive method. When the button I pressed, I want to force the widget to call the onupdate method.
View 2 Replies
View Related
Aug 9, 2010
I'm just starting with android development and have written an application to show details about the battery status.
Now I wanted to put the whole thing into an widget - and here's the question:
Do I really need a update service in the background to listen for ACTION_BATTERY_CHANGED intents? My first thought was to put just a <action android:name="android.intent.action.ACTION_BATTERY_CHANGED" /> line into the <intet-filter> tag of the widget in the AndroidManifest.xml - but obviously it's not that simple.
If the UpdateService is the right way I'll do so - but I just wanted to make sure what the proper solution is.
View 3 Replies
View Related
Jul 21, 2010
I wrote one widget that updates per 5-seconds and I found that if it's run for a period of time, com.android.acore will occupy almost 100% cpu. Could somebody give me suggestions or help?
View 9 Replies
View Related