[英]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.