2012-09-27 1 views
0

Я создал приложение формы, в котором пользователь заполняет форму, затем нажимает кнопку отправки, которая форматирует данные пользователя по электронной почте. Приложение заполняет данные в теле письма на моем Droid Charge, но когда кто-то использует Galaxy S, тело письма пустое. Кто-нибудь знает об исправлении этой проблемы?Galaxy S Blank Email Когда вызывается

Intent emailIntent = new Intent(
        android.content.Intent.ACTION_SEND); 
      emailIntent.setType("message/rfc822"); 
      emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, 
        new String[] { "[email protected]" }); 
      emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, 
        "Form on " + String.valueOf(editText1.getText()) + "Tech " + String.valueOf(editText2.getText())); 
      emailIntent.putExtra(
        android.content.Intent.EXTRA_TEXT, 
        "Completed by = " + String.valueOf(editText1.getText()) 
          + "/" + String.valueOf(editText2.getText()) 
          + '\n' + "Tech Center = " 
          + String.valueOf(editText3.getText()) 
          + '\n' + "Job # = " 
          + String.valueOf(editText4.getText()) 
          + '\n' + "Date = " 
          + String.valueOf(editText5.getText()) 
          + '\n' + "Address = " 
          + String.valueOf(editText6.getText()) 
          + '\n' + "Type = " 
          + String.valueOf(spinner7.getSelectedItem()) 
          + '\n' + "Work = " 
          + String.valueOf(spinner8.getSelectedItem()) 
          + '\n' + "Location = " 
          + String.valueOf(spinner9.getSelectedItem()) 

          //code omitted 

          + '\n' + "Referrals = " 
          + String.valueOf(editText8.getText()) 
          + '\n' + String.valueOf(result11.toString())); 

      startActivity(Intent.createChooser(emailIntent, "Send Mail")); 
      finish(); 

     } 

    }); 

} 
+0

Обновление: Пользователь с Galaxy S выбрал Gmail вместо электронной почты и заполнил его в теле приложения Gmail. –

ответ

0

Попробуйте использовать вместо этого действие Intent.ACTION_SENDTO. Это имеет дополнительное преимущество, поскольку в выборщике появляются только актуальные приложения электронной почты.

К сожалению, я не думаю, что вы можете использовать дополнительные намерения для заполнения электронной почты при использовании Intent.ACTION_SENDTO. Вам нужно будет использовать что-то вроде этого:

Intent emailIntent = new Intent(Intent.ACTION_SENDTO).setData(Uri.parse(String.format(
    "mailto:%s?subject=%s&body=%s", 
    recipient, 
    subject, 
    body 
).replace(" ", "%20"))); 
+0

К сожалению, у меня нет Galaxy S для тестирования. Может быть, я смогу проверить новый код. Спасибо за информацию. –