【问题标题】:Calling a mail client when clicking a button单击按钮时调用邮件客户端
【发布时间】:2017-07-17 21:15:17
【问题描述】:

我有一个连接到解析服务器数据的 ListView 正在通过解析。当我单击 ListView 的单个项目时,它会转到单个项目视图。我有一个电子邮件按钮,我需要的是当我单击该电子邮件按钮时,电子邮件客户端应该打开。带有特定的单个项目电子邮件 ID。电子邮件 ID 存储在 parse database 的列中。有谁知道请电话联系怎么做?

我的数据库是解析服务器,我需要从 解析列。每个单项都有不同的电子邮件...电子邮件列 名称是“电子邮件”

*

我使用下面的答案并像这样编辑,但没有显示接收者电子邮件

*


使用以下指向邮件客户端的答案编辑了代码,但没有显示接收者电子邮件

btn1 = (Button)findViewById(R.id.button5);
            btn1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    String phnoo = object.getString("email");


                    Intent intent = new Intent(Intent.ACTION_SENDTO);
                   intent.setType("message/rfc822");
                    intent.setData(Uri.parse("mailto:"+phnoo));
                    startActivity(intent);

我用于调用电子邮件客户端的 java 代码

  btn1 = (Button) findViewById(R.id.button5) ;
        btn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String phno="email";

                Intent intent = new Intent(Intent.ACTION_VIEW);
                Uri data = Uri.parse("mailto:" +phno);
                intent.setData(data);
                startActivity(intent);
            }
        });

按钮的xml代码

   <Button
            android:id="@+id/button5"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:text="E-MAIL"

            android:layout_weight="1"
            android:background="#EFEFEF"/>

【问题讨论】:

  • 您想通过邮件分享文本吗?如果是,您可以使用Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
  • 当人们点击电子邮件按钮时,我想打开一个电子邮件客户端..
  • @Nazim ch 仅电子邮件在邮件客户端中显示为空。你能说出原因吗

标签: android android-intent email-client


【解决方案1】:

尝试关注

    private void sendEmail(File file){
            Intent emailIntent = new Intent(Intent.ACTION_SEND);
            emailIntent.setType("text/html");
            final PackageManager pm = this.getPackageManager();
            final List<ResolveInfo> matches = pm.queryIntentActivities(emailIntent, 0);
            String className = null;
            for (final ResolveInfo info : matches) {
                if (info.activityInfo.packageName.equals("com.google.android.gm")) {
                    className = info.activityInfo.name;

                    if(className != null && !className.isEmpty()){
                        break;
                    }
                }
            }
            emailIntent.setClassName("com.google.android.gm", className);
            emailIntent.setType("vnd.android.cursor.dir/email");
            emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
            emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[]{"xyz@abc.com"});
            emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
            emailIntent.setType("plain/text");
            startActivity(emailIntent);

        }

【讨论】:

  • 我应该在哪里添加解析电子邮件 ID 列名称? @Mehul Kabaria
  • 我的获取电子邮件的解析列名称是“电子邮件”.. 我可以在哪里添加它
  • 嗨@Mehul Kabaria,如果可以的话,请检查一下。stackoverflow.com/questions/42968587/…
【解决方案2】:

我认为这会对你有所帮助

Intent in = new Intent(Intent.ACTION_SEND);
in.setType("plain/text");
in.putExtra(Intent.EXTRA_EMAIL, new String[] { "mail id" });
in.putExtra(Intent.EXTRA_SUBJECT, "subject");
in.putExtra(Intent.EXTRA_TEXT, "mail body");
startActivity(Intent.createChooser(in, ""));

【讨论】:

  • 请检查我的代码我编辑它总是相同的电子邮件你能告诉为什么
  • 从哪里获得要发送的邮件 ID?
  • 我从解析服务器数据库中获取它。列名是“电子邮件”
  • stackoverflow.com/questions/42481317/… 请检查此列表我在这里获取电话号码同样我需要此@Nazim ch 中的电子邮件 ID
  • 确保解析值是一个字符串,并且以完美的方式将其提取到 adnroid 活动中
【解决方案3】:

试试这个

Intent i = new Intent(Intent.ACTION_SEND);
i.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{ emailAddress });
i.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
i.putExtra(android.content.Intent.EXTRA_TEXT, text);
startActivity(Intent.createChooser(i, "Send email"));

【讨论】:

  • 在哪里可以添加解析数据库的电子邮件列 ID
  • 你可以在这个new String[]{ emailAddress1,emailAddress2 })添加很多邮件
  • 此电子邮件按钮位于列表视图的单个项目视图中,因此每个项目都有一个电子邮件 ID 存储在 parse database 中。当有人单击该按钮时,它应该打开一个具有该单个项目的特定电子邮件 ID 的电子邮件客户端。所有电子邮件 ID 存储在其中的列的名称是“电子邮件”..
  • 或者您可以添加有关电子邮件地址的变量并在上面的代码中传递 int。请发布您的适配器代码.. listview
  • 解析数据库列名是 email 。我添加了您的代码,它显示一条消息“没有应用程序可以执行此操作”
猜你喜欢
  • 2011-02-13
  • 2019-07-05
  • 1970-01-01
  • 2021-03-27
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多