2013-04-04 33 views
1

有没有办法知道用户是否从选择器中选择了意向动作。如何知道用户是否从选择器中选择了意向动作

我想这样做 - 如果它由用户选择然后完成当前活动,否则保留在当前活动中。

我有这样的代码:

startActivity(Intent.createChooser(email, "Choose an Email client :")); 
finish(); 

但这总是能完成当前活动无论用户选择了电子邮件客户端或不是。

任何想法?

+0

我不认为有任何方法可以找出此... – Shrikant 2013-04-04 10:49:23

+0

请在这里检查http://stackoverflow.com/questions/6515888/android-email-intent-anyway-to-know-if-the-user-actually-sent-the-email-or-not – 2013-04-04 10:52:43

+0

不,没有一个方式来确定这...检查这个http://stackoverflow.com/questions/3600149/get-mail-sent-notification-in-onactivityresult-android?lq=1 – 2013-04-04 11:03:00

回答

4

您可以通过展示自己的自定义选择器

首先得到可以处理你的意图的所有包做

private List<String> getInstalledComponentList(Intent emailIntent) 
      throws NameNotFoundException { 

     List<ResolveInfo> ril = getPackageManager().queryIntentActivities(emailIntent, 0); 
     List<String> componentList = new ArrayList<String>(); 
     String name = null; 

     for (ResolveInfo ri : ril) { 
      if (ri.activityInfo != null) { 
       Resources res = getPackageManager().getResourcesForApplication(ri.activityInfo.applicationInfo); 
       if (ri.activityInfo.labelRes != 0) { 
        name = res.getString(ri.activityInfo.labelRes); 
       } else { 
        name = ri.activityInfo.applicationInfo.loadLabel(
          getPackageManager()).toString(); 
       } 
       componentList.add(name); 
      } 
     } 
     return componentList; 
    } 

然后显示一个对话框,包like this

这一切的名单,然后处理单击事件并启动选定的程序包

相关问题