2011-10-04 24 views
4

我正在使用Action發送並在我的應用程序中創建選擇器API以通過各種電子郵件應用程序共享一些文本消息。但我不希望所有應用程序已安裝在我的設備中。我特別要求Facebook,Gmail和Twitter在該選擇器List.How要如此過濾?謝謝如何篩選(分享)電子郵件意向的特定應用程序?

String TEXT = "I shared the file " + " via MyApp"; 
    Intent sendIntent = new Intent(Intent.ACTION_SEND); 
    sendIntent.setType("text/plain"); 
    sendIntent.putExtra(Intent.EXTRA_TEXT, TEXT); 
    startActivity(Intent.createChooser(sendIntent, "Share the program:")); 

這是我使用的代碼。

回答

3

如果您知道,您需要哪些應用程序,您可以在對話框中創建自己的選擇器,並根據用戶的選擇激發特定的意圖。

您可以通過調用PackageManager的queryIntentActivities檢查可用的應用程序:

Intent sendIntent = new Intent(Intent.ACTION_SEND); 
sendIntent.setType("text/plain"); 
List pkgAppsList = context.getPackageManager().queryIntentActivities(sendIntent, 0); 

然後你選擇那些你需要並彈出對話框。

+0

謝謝Andras.Is有任何方法來過濾createChooser()API.b,因爲我想要默認共享屏幕。 –

+0

另外,有沒有一種方法可以根據應用類型(文本,電子郵件等)進行過濾? – Rooster242

相關問題