2011-06-10 34 views
1

當我想用設備上的電子郵件客戶端發送一些文本時,是否可以在設置意向中的電子郵件文本之前查看選擇了哪個電子郵件客戶端(例如Gmail或雅虎郵件)?發送電子郵件意向選擇器

回答

2

不幸的是,沒有。當您啓動選擇器意圖時,由用戶決定要去哪裏/使用什麼。所有數據必須在啓動意圖之前設置,並且在活動返回之前您無法控制。換句話說,你不能在對話框中根據他們的選擇來影響消息的文本。

0

這不能使用默認的意向選擇器來完成。但是,您可以查詢哪些活動可以給你的意圖作出迴應:

PackageManager manager = getPackageManager(); 
List<ResolveInfo> ri = manager.queryIntentActivities(intent, 
           PackageManager.GET_RESOLVED_FILTER); 

然後,您可以繼續在列表中顯示此,觀察用戶做出哪個選擇,並執行一些特定的選擇意向。

0

你可以明確地調用你想要的組件來做你的服務。我想使用Gmail發送電子郵件一樣

public void sendGmail(Activity activity, String subject, String text) { 
    Intent gmailIntent = new Intent(); 
    gmailIntent.setClassName("com.google.android.gm", "com.google.android.gm.ComposeActivityGmail"); 
    gmailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject); 
    gmailIntent.putExtra(android.content.Intent.EXTRA_TEXT, text); 
    try { 
     activity.startActivity(gmailIntent); 
    } catch(ActivityNotFoundException ex) { 
     // handle error 
    } 
} 

而且不要忘了添加Internet權限