Susan wrote: > I am trying to create a widget that, when clicked on, launches the > browser and goes to a particular URL. Unfortunately, I have had a lot > of problems. I started with a (working) widget that, when clicked, > opened the alarm clock. Then, using the code from another Groups post > (http://groups.google.com/group/android-developers/msg/ > 11e54b1df3a4d279), I tried to convert it to open the browser instead. > Here is my (non-working) code: > > public class Widget extends AppWidgetProvider > { > public void onReceive(Context context, Intent intent) > { > String action = intent.getAction(); > if (AppWidgetManager.ACTION_APPWIDGET_UPDATE.equals(action)) > { > > RemoteViews views = new RemoteViews(context.getPackageName > (), R.layout.widget); > > Intent i = new Intent(Intent.ACTION_VIEW).addCategory > (Intent.CATEGORY_BROWSABLE).setComponent(new ComponentName > ("com.android.browser", "com.android.browser.BrowserActivity")); > Uri url = new Uri("http://www.cnn.com"); > i.setData(url);
Change the previous three lines to: Intent i=new Intent(ACTION_VIEW, Uri.parse("http://www.cnn.com")); > PendingIntent pendingIntent = PendingIntent.getActivity > (context, 0, i, 0); > views.setOnClickPendingIntent(R.id.Widget, pendingIntent); > > AppWidgetManager.getInstance(context).updateAppWidget > (intent.getIntArrayExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS), > views); > } > } > } > > First, I get an error when I try to create the new Uri -- "Cannot > instantiate the type Uri." The Groups post I've been referencing uses > ContentURI - a class that doesn't seem to exist. Check the date. That is probably an 18-month-old post. Uri is in the android.net package. > My goal is to just launch a web browser, but I inexplicably haven't > found a single "Hello, Web Browser!" app anywhere. I'd be happy to > abandon this code and start anew or to fix whatever the problem is > with a Uri. If anybody has any advice to offer, I'll be the happiest > girl in the world. Thanks! To launch a Web browser from most places, you need: startActivity(new Intent(ACTION_VIEW, Uri.parse("http://www.cnn.com"))); In your case, though, you're creating an app widget, which makes things a wee bit different: Intent i=new Intent(ACTION_VIEW, Uri.parse("http://www.cnn.com")); PendingIntent pendingIntent=PendingIntent.getActivity(context, 0, i, 0); views.setOnClickPendingIntent(R.id.Widget, pi); That will trigger the Browser when that specific UI widget in the app widget is tapped. -- Mark Murphy (a Commons Guy) http://commonsware.com | http://twitter.com/commonsguy _Android Programming Tutorials_ Version 1.0 In Print! -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en