Hi all,

I am trying to launch an app widget from another application.

On click of a button in an application, the appwidget is receiving the
message i broadcasted.

I have implemented the appwidgetprovider class.
In the appwidgetprovider class, in the onReceive function i am able to
get the broadcasted message.

My broadcast file is:

package com.example.broadcast;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;

public class broadcast extends Activity implements
View.OnClickListener {
    /** Called when the activity is first created. */

        public static final String ACTION_UPDATE_WIDGET =
"Broadcast_Message";
        public static final String MESSAGE = "message";

        public void onClick(View v) {
              sendBroadcast();
        }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Button start = (Button) findViewById(R.id.button);
        start.setOnClickListener(this);

    }

    private void sendBroadcast() {
        Log.i("test", "send broadcast");
        Intent broadcast = new Intent(this, receiver.class);
        broadcast.putExtra(MESSAGE, "Bye");
        broadcast.setAction(ACTION_UPDATE_WIDGET);
        sendBroadcast(broadcast);
        Log.i("test", "after send");
  }

}


My appwidget class is as follows:

package com.example.broadcast;

import android.appwidget.AppWidgetHost;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.appwidget.AppWidgetProviderInfo;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import android.widget.Toast;

public class receiver extends AppWidgetProvider {

        public void onReceive ( Context context,Intent intent ){

                //super.onReceive(context,intent );
                String action = intent.getAction();
                String message="";
                //String packagename="";
                int appwidgetid;

                Log.i("test", "message received");

                if( "Broadcast_Message".equals  ( action ) ) {

                        //String message;
                        Toast.makeText( context, "Broadcast sucessfull...",
Toast.LENGTH_LONG).show();

                        if ( intent.hasExtra(broadcast.MESSAGE)) {

                                message = 
(String)intent.getCharSequenceExtra(broadcast.MESSAGE);
                                Toast.makeText( context, message, 
Toast.LENGTH_LONG).show();
                        }
                        message = message+"in the for loop";

                        updateSampleWidget( context, appWidgetManager,1,message 
);

                }

        }

        private void updateSampleWidget(Context context,AppWidgetManager
appWidgetManager, int widget, String text) {

                 Log.i("test","In the update sample widget function");
             RemoteViews views = new RemoteViews(context.getPackageName
(),R.layout.widget_provider);

             views.setTextViewText(R.layout.widget, text);
             //Intent intent1 = new Intent(context, broadcast.class);
             //PendingIntent pendingIntent = PendingIntent.getActivity
(context, 0,intent1, 0);
             //views.setOnClickPendingIntent(R.layout.widget, pendingIntent);
             //appWidgetManager.updateAppWidget(widget, views);
        }

}

The widget_provider.xml file contains the appwidget resource file.
The widget.xml file contains a textview element only.

The updateSampleWidget function is not getting executed.

Am i doing anything wrong here???

My questions are:
1. Is it possible to start an appwidet from the onReceive function?
2. Is it possible to start an appwidget from another applicaion by
sending and receiving a broadcast message?

-- 
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

Reply via email to