2013-04-04 54 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

這一切的名單,然後處理單擊事件並啓動選定的程序包

相關問題