0

我想发送一封包含来自 SharedPreferences 的电子邮件地址的电子邮件。用户应在 SharedPreferences 中键入电子邮件地址,并且消息意图应使用此地址。

我立即使用此代码发送带有附件和修复地址的电子邮件。请问有人可以给我看新代码吗?

private final void mailNote() {
    Intent messageIntent = new Intent(android.content.Intent.ACTION_SEND); 
    String aEmailList[] = { "Mailadresse@gmx.de" };
    messageIntent.putExtra(android.content.Intent.EXTRA_EMAIL, aEmailList); 
    messageIntent.putExtra(Intent.EXTRA_TEXT, "eMail from APP");//eMail Text 
    messageIntent.putExtra(Intent.EXTRA_SUBJECT, "Info"); //Betreff 
    // get the data from the cursor using the column index indicatormessage
    Intent.setType("plain/text"); 
    messageIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///mnt/sdcard/CEDApp/CEDApp_export.txt"));
    startActivity(Intent.createChooser(messageIntent, "Email:")); 
    Intent chooser = Intent.createChooser(messageIntent, "choose an option:");//Überschrift 
    // Send the note 
    startActivity(chooser); 
}

来自德国的感谢和问候,Katsche

4

4 回答 4

0

好吧,在您从 SharedPreferences 检索数据之前,您还需要将其放在那里:

settings = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
settings.edit().putString("emailKey", "my@email.com").commit();
于 2013-10-28T19:28:23.650 回答
0

ich bin Android-Anfänger und habe das jetzt so umgestellt jedoch funktioniert das nicht, sprich es wird keine eMailadresse aus der SharedPreferences mit übergeben。

private final void mailNote() { 
Intent messageIntent = new Intent(android.content.Intent.ACTION_SEND); 
messageIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); 

SharedPreferences settings = getPreferences(MODE_PRIVATE); 
settings = PreferenceManager.getDefaultSharedPreferences(getBaseContext()); 
eMailAdress = settings.getString("emailkey", ""); 
messageIntent.putExtra(android.content.Intent.EXTRA_EMAIL, eMailAdress); 

messageIntent.putExtra(Intent.EXTRA_TEXT, "eMail from CED-APP");//eMail Text 
messageIntent.putExtra(Intent.EXTRA_SUBJECT, "CED-Info"); //BetreffmessageIntent.setType("plain/text"); 
messageIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///mnt/sdcard/CEDApp/CEDApp_export.txt"));startActivity(Intent.createChooser(messageIntent, "Email:")); 
Intent chooser = Intent.createChooser(messageIntent, "choose an option:");//Überschrift 
// Send the note 
startActivity(chooser); 
}
于 2013-10-28T18:00:48.430 回答
0

我试图像这样更新我的代码:

private final void mailNote() {
Intent messageIntent = new Intent(android.content.Intent.ACTION_SEND);
messageIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

SharedPreferences settings = getPreferences(MODE_PRIVATE);
settings = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
settings.edit().putString("emailkey", "my@email.com").commit();

messageIntent.putExtra(android.content.Intent.EXTRA_EMAIL, eMailAdress); //<== ERROR

messageIntent.putExtra(Intent.EXTRA_TEXT, "eMail from CED-APP");//eMail Text
messageIntent.putExtra(Intent.EXTRA_SUBJECT, "CED-Info"); //Betreff
messageIntent.setType("plain/text");
messageIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///mnt/sdcard/CEDApp/CEDApp_export.txt"));
startActivity(Intent.createChooser(messageIntent, "Email:"));
Intent chooser = Intent.createChooser(messageIntent, "choose an option:");//Überschrift
// Send the note
startActivity(chooser);
}

我认为带有注释的行:错误是问题还是?

于 2013-10-28T20:32:01.163 回答
0
SharedPreferences settings = null;
settings = PreferenceManager.getDefaultSharedPreferences(this);
eMailAdress = settings.getString("eMailAdress", ""); // Replace eMailAdress with your Pref name
于 2013-10-28T07:52:32.297 回答