2015-09-27 138 views
1

我確實試圖尋找答案,但獲得了不滿意的結果 - 如果有人發現一個完美的答案,請不要殺了我。電子郵件意圖找不到電子郵件應用

所以,基本上,我已經設置了一個電子郵件的意圖,並試圖啓動它。

public void emailSummary(String emailText, String name) { 
     Intent emailIntent = new Intent(Intent.ACTION_SEND); 
     emailIntent.setData(Uri.parse("mailto:")); 
     emailIntent.putExtra(Intent.EXTRA_EMAIL, ""); 
     emailIntent.putExtra(Intent.EXTRA_SUBJECT, "JustJava order for " + name); 
     emailIntent.putExtra(Intent.EXTRA_TEXT, emailText); 
     Log.v("MainActivity", "Finished setting up intent"); 
     if (emailIntent.resolveActivity(getPackageManager()) != null) { 
      startActivity(emailIntent); 
      Log.v("MainActivity", "Sharing the order summary to email"); 
     } else { 
      Log.d("MainActivity", "No email app installed!"); 
      Toast.makeText(MainActivity.this, "Uh...No email app?", Toast.LENGTH_SHORT).show(); 
     } 

但是,當我按下訂單按鈕時​​,「呃...沒有電子郵件應用程序?」吐司出現了。我安裝了Inbox和Gmail,並嘗試了一系列組合(僅限Inbox,Inbox和Gmail,僅限Gmail),但發現Intent似乎並不在意。

有人幫忙嗎?

回答

3

您可以使用此代碼:

Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts(
     "mailto",name, null)); 
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "SOME_SUBJECT"); 
emailIntent.putExtra(Intent.EXTRA_TEXT, emailText); 
try { 
startActivity(Intent.createChooser(emailIntent, "Send email...")); 
Log.v("MainActivity", "Sharing the order summary to email"); 
} 
catch (android.content.ActivityNotFoundException ex) { 
Log.d("MainActivity", "No email app installed!"); 
Toast.makeText(MainActivity.this, "Uh...No email app?", Toast.LENGTH_SHORT).show(); 
} 

能否請您解釋一下什麼是錯我的代碼?

我測試了您的代碼,並且if (emailIntent.resolveActivity(getPackageManager()) != null) {不好檢查您的設備上是否有任何電子郵件應用程序。我發現這種方法和工作正常:@Nitin answer

public static boolean isMailClientPresent(Context context){ 
Intent intent = new Intent(Intent.ACTION_SEND); 
intent.setType("text/html"); 
final PackageManager packageManager = context.getPackageManager(); 
List<ResolveInfo> list = packageManager.queryIntentActivities(intent, 0); 

if(list.size() == 0) 
    return false; 
else 
    return true; 
} 
+0

感謝您的解決方案!它完美地工作,並顯示兩個電子郵件應用程序。如果你有時間,你能解釋我的代碼有什麼問題嗎?再一次,謝謝! – ideaman924

+0

@ ideaman924檢查我的編輯,如果它幫助你標記此答案爲正確的:D –

+0

這一個似乎很好地工作。 +1 –

相關問題