簡體   English   中英

如何解決android電子郵件意圖問題?

[英]How to solve android email intent problem?

我在使用Android電子郵件時遇到問題.....我需要打開電子郵件應用程序,以便用戶可以為我的應用程序提供反饋。當我使用它時,它無法打開..引發ActivityNotFoundException .....我使用的是手機,而不是模擬器,並且手機中包含電子郵件和gmail應用程序。 幫我解決嗎? 這是我的代碼:

    Intent intent= new Intent(Intent.ACTION_SENDTO);
    intent.setData(Uri.parse("mailto:"));
    intent.setType("text/plain");
    String[] mail={"someone@gmail.com"};
    intent.putExtra(Intent.EXTRA_SUBJECT,"");
    intent.putExtra(Intent.EXTRA_TEXT,"");
    intent.putExtra(Intent.EXTRA_EMAIL,mail);
    startActivity(intent);

任何和所有評論表示贊賞:)

對於您而言, ActivityNotFoundException最有可能意味着您的手機沒有在設備(如Gmail)上安裝任何默認的電子郵件應用程序電子郵件應用程序,因此在啟動Intent時會收到此錯誤。

您可以嘗試像這樣處理該異常:

try {
    startActivity(Intent.createChooser(i, "Send mail"));
} catch (android.content.ActivityNotFoundException ex) {
    Toast.makeText(Activity.this, "no email app",Toast.LENGTH_SHORT).show();
}

在android docs中 ,一個Intent允許您通過描述您要在Intent對象中執行的簡單操作(例如“查看地圖”或“拍照”)來啟動另一個應用程序中的活動。 這種類型的意圖稱為隱式意圖,因為它沒有指定要啟動的應用程序組件,而是指定了一個動作並提供了一些數據來執行該動作。

當您調用startActivity()或startActivityForResult()並將其傳遞給隱式意圖時, 系統會將意圖解析為可以處理該意圖的應用程序並啟動其相應的Activity。 如果有多個應用程序可以處理此意圖,則系統向用戶顯示一個對話框,以選擇要使用的應用程序。

因此,在您的情況下,系統無法找到要解決其意圖的應用程序,如@Tamir所述。

有關更多信息,請查看此Stack Overflow帖子: 發送電子郵件意圖

這個對我有用 :

      String[] recipients;
            Intent intent = new Intent(Intent.ACTION_SEND);
                recipients = new String[]{"someone@gmail.com"};    

            intent.putExtra(Intent.EXTRA_EMAIL, recipients);
            intent.setType("text/html");
            intent.setPackage("com.google.android.gm");
           try {
            activity.startActivity(Intent.createChooser(intent, "Send"));
      }
         catch (android.content.ActivityNotFoundException ex) {
    Toast.makeText(Activity.this, "no email app",Toast.LENGTH_SHORT).show();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM