在Android中使邮件屏幕文本字段可编辑为false

时间:2014-01-27 11:59:12

标签: android email android-intent gmail

Hello Friends我想在我的应用程序发送邮件时在所有edittext中制作可编辑的false  编程

Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("mailto","test@mymail.com, null));

emailIntent.putExtra(Intent.EXTRA_SUBJECT, "My Subject");

emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, Message);
startActivity(Intent.createChooser(emailIntent, "Send email..."));
finish();

朋友我的问题是我想要Text Subject Feild和Text / Body feild Read Only用户无法编辑它的值,所以我怎么能让它成为idae?

3 个答案:

答案 0 :(得分:0)

你将一个意图传递到Android设备来处理邮件功能,指定一旦传递意图就处理它,它将由gmail或手机中安装的任何其他电子邮件客户端处理,一旦他们处理并获取您的主题和消息的数据应用程序将处于暂停状态,我的意思是说您无法控制处理数据的其他应用程序。

创建邮件处理和发送邮件,而不是将其作为意图传递

设置editable false仅当您的应用程序中有这些编辑字段而不是由您的意图启动的其他活动时才有效

答案 1 :(得分:0)

您可以创建自己的电子邮件发送活动,而无需将意图传递给任何本机电子邮件客户端应用程序。您可以轻松地禁用editText以显示消息和主题。发送电子邮件的代码是:

public class SendMail{

    public static void main(String[] args) {

        final String username = "username@gmail.com";
        final String password = "password";

        Properties props = new Properties();
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.starttls.enable", "true");
        props.put("mail.smtp.host", "smtp.gmail.com");
        props.put("mail.smtp.port", "587");

        Session session = Session.getInstance(props,
          new javax.mail.Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(username, password);
            }
          });

        try {

            Message message = new MimeMessage(session);
            message.setFrom(new InternetAddress("from-email@gmail.com"));
            message.setRecipients(Message.RecipientType.TO,
                InternetAddress.parse("to-email@gmail.com"));
            message.setSubject("Testing Subject");
            message.setText("Dear Mail Crawler,"
                + "\n\n No spam to my email, please!");

            Transport.send(message);

            System.out.println("Done");

        } catch (MessagingException e) {
            throw new RuntimeException(e);
        }
    }
}

取自here

答案 2 :(得分:0)

基本上,如果您选择Android的电子邮件选择器发送电子邮件,您将失去对此意图的所有控制权。所以压倒这些行为是非常困难的,也许是不可能的。因此,您可以点击此链接Sending Email in Android using JavaMail API without using the default/built-in app来解决此问题。

您可以在上面的链接中找到如何使用javamail Api。

现在,您可以为邮件活动创建自己的layout。你可以使用

youreditetxtWhichyouwanttodisable.setEditable(false);

这可能很有用。