This is wrong in a number of ways: getLaunchIntentForPackage( "com.android.email" );
First, "com.android.email" is not an API. That is the internal identifier for the current e-mail application that is part of AOSP; there is *no* guarantee that such a thing will ever exist on the device. Second, more specific to your issue here, getLaunchIntentForPackage() returns a *launch* intent, for use in semantics like an app launcher. What you are asking for is not an app launcher; you want to run flow as part of your own task, not launch something different. In particular, what this Intent will do is bring the current e-mail app to the foreground *in whatever state it was last in*. The user may have been in the middle of composing a message, viewing something, etc. It isn't saying to bring them to the list of e-mail messages for them to import something. One other thing, when you say startActivityForResult() is not working, this is not because of an explicit vs. implicit Intent; this is because part of what getLaunchIntentForPackage() does is set FLAG_ACTIVITY_NEW_TASK, which says to launch the Intent as a separate task from yours (bringing an existing task to the foreground etc), which is central to the semantics of this being for app launchers not in-task UI flow. On Thu, Aug 23, 2012 at 7:16 AM, Mark Jawdoszak <evilja...@gmail.com> wrote: > I have an intent that starts the default Android mail client: > > Intent emailIntent = this.getPackageManager().getLaunchIntentForPackage( > "com.android.email" ); > this.startActivity( emailIntent ); > > Very simple stuff, and it fires off the Email client, from an "Import from > Email" button in my app. > > My application is also registered with an <intent-filter> to open PDF > files. > So, if I use the above Intent to open up the Email client, find an email > with a PDF attachment, download it, launch it, select my application from > the chooser... then everything loads great. > > Now if I hit my "Import from Email" button again, the intent runs, but the > Email client is never brought into the foreground. > > Am I missing something when using startActivity() to (re)launch the > correct app? > I have tried checking if the intent is OK by following this > http://developer.android.com/training/basics/intents/sending.html#Verifybut > it always returns true (and that makes sense, as it can find the > Application, but it's just not bringing it to the foreground). > > I have also tried using startActivityForResult(), but as explained in the > Android docs, this fires off a "cancel" immediately, because the Activity > is not Explicit, but Implicit (thought I'd try it, just in case). > > I feel like I'm missing something, a step, a call to something... or have > I hit upon some strange loop that works in one case, but cannot keep > looping? Any help/pointers would be greatly appreciated! > > -- > 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 > -- Dianne Hackborn Android framework engineer hack...@android.com Note: please don't send private questions to me, as I don't have time to provide private support, and so won't reply to such e-mails. All such questions should be posted on public forums, where I and others can see and answer them. -- 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