【问题标题】:Sending email intent working on phone but not working on tablet in Android application发送电子邮件意图在手机上工作但不能在 Android 应用程序中的平板电脑上工作
【发布时间】:2014-11-02 16:44:17
【问题描述】:

我正在尝试在我的应用程序中发送带有意图的电子邮件。它在手机上运行良好,但在我的平板电脑上无法运行。这是邮件意图代码:

mail.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(android.content.Intent.ACTION_SEND);
            intent.setType("text/html");
            List<ResolveInfo> resInfo = getPackageManager().queryIntentActivities(intent, 0);

            if (!resInfo.isEmpty()) {
                for (ResolveInfo info : resInfo) {
                    if (info.activityInfo.packageName.toLowerCase().contains("email") || info.activityInfo.name.toLowerCase().contains("email")) {
                        intent.putExtra(Intent.EXTRA_EMAIL, new String[]{"asd@asd.com"});
                        intent.setPackage(info.activityInfo.packageName);
                        startActivity(Intent.createChooser(intent, ""));
                    }
                }
            }
        }
    });

这是我的手机布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
    <Button
        android:id="@+id/mail"
        android:layout_width="150dp"
        android:layout_height="50dp"
        android:layout_marginBottom="100dp"
        android:layout_gravity="center|bottom"
        android:background="@drawable/bakanadanis_button"
        android:gravity="center"
        android:text="Bakana Ulaşın"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="@android:color/white"
        android:textSize="14dp" />

以及 600dp 平板电脑的布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/tab_merkezteskilatibg">
    <Button
        android:id="@+id/mail"
        android:layout_width="200dp"
        android:layout_height="50dp"
        android:layout_marginBottom="200dp"
        android:layout_gravity="center|bottom"
        android:background="@drawable/bakanadanis_button"
        android:gravity="center"
        android:text="Bakana Ulaşın"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:clickable="false"
        android:focusable="false"
        android:focusableInTouchMode="false"
        android:textColor="@android:color/white"
        android:textSize="18dp" />

有人知道问题可能是什么吗?谢谢。

【问题讨论】:

  • 您是否遇到了崩溃或具体的症状是什么?如果您有任何日志,请在此处粘贴。
  • 我没有收到任何错误信息或类似的信息,只是不适用于平板电脑。我能够点击按钮但不能发送电子邮件操作,我在这里没有发现问题。

标签: android email android-intent tablet mobile-phones


【解决方案1】:

检查您的平板电脑上是否有一个电子邮件客户端应用程序,该应用程序通过了您在各种if 条件中测试的所有条件。在每个阶段放置调试日志,看看您在尝试启动目标应用的过程中进展如何。

【讨论】:

  • 我该如何检查这种情况,如果不是,我该如何解决这个问题。因为我的应用必须适用于平板电脑。
  • 在我的回答中添加了更多信息。放置调试日志。也许您对 if (info.activityInfo.packageName.toLowerCase().contains("email") || info.activityInfo.name.toLowerCase().contains("email")) { } 的限制太大。可能需要放松。此外,最简单的检查方法是 - 您是否能够在应用程序之外打开电子邮件客户端,即手动打开 gmail 应用程序(或类似的东西)并发送电子邮件?如果是,那么您也应该能够通过您的意图启动它。
  • 我解决了添加 info.activityInfo.packageName.toLowerCase().contains("Email") || 的问题info.activityInfo.name.toLowerCase().contains("Email") 进入 if 语句。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-05
  • 1970-01-01
相关资源
最近更新 更多