【问题标题】:Android email intent crash on galaxy devicesGalaxy设备上的Android电子邮件意图崩溃
【发布时间】:2013-04-07 15:15:32
【问题描述】:

我制作了一个应用程序,可以通过单击按钮启动新的电子邮件意图,我已经在几台设备上对其进行了测试,它似乎工作正常,除了它在银河 2 和银河 3 上崩溃。这是我的代码检查互联网访问然后调用意图。

ConnectivityManager cm = (ConnectivityManager) getActivity().getSystemService(Context.CONNECTIVITY_SERVICE);
if((cm.getActiveNetworkInfo() != null && cm.getActiveNetworkInfo().isAvailable() && cm.getActiveNetworkInfo().isConnected())) 
{
    Log.d("Main", "Start Email");

    Intent sendIntent = new Intent(Intent.ACTION_VIEW);
    sendIntent.setClassName("com.google.android.gm","com.google.android.gm.ComposeActivityGmail");
    sendIntent.putExtra(Intent.EXTRA_EMAIL, new String[] { monkey.getSendTo() });
    sendIntent.setData(Uri.parse(monkey.getSendTo()));
    sendIntent.putExtra(Intent.EXTRA_SUBJECT, "TFS note");
    sendIntent.setType("plain/text");
    sendIntent.putExtra(Intent.EXTRA_TEXT, "Sent From TFS\n");
    startActivity(sendIntent);

} else{//toast if there is no internet
    Toast.makeText(getActivity().getBaseContext(),"No Internet\n   access", 
    Toast.LENGTH_SHORT).show();
}

在我看来,在 Galaxy 设备上,它并没有对 gmail 应用程序进行罚款,因此它无法启动意图,所以我想知道如何制定一个通用意图来打开任何形式的电子邮件应用程序,或者是否有更好的方法使其与 Galaxy 设备兼容。

【问题讨论】:

    标签: android email android-intent crash galaxy


    【解决方案1】:

    请删除:

    sendIntent.setClassName("com.google.android.gm","com.google.android.gm.ComposeActivityGmail");
    

    这是对用户的侮辱,迫使他们使用 Gmail。它是用户的设备、用户的带宽、用户的电池、用户的数据和用户的时间。请允许用户按照用户的意愿发送用户的数据。

    此外,并非所有版本的 Gmail 中都存在该活动,并且该活动可能不会在所有版本的 Gmail 中导出。

    另外,请更改:

    sendIntent.setType("plain/text");
    

    到:

    sendIntent.setType("text/plain");
    

    因为plain/text 不是有效的 MIME 类型。

    您还应该摆脱所有ConnectivityManager 的东西。并非用户想要共享此信息的所有方式都需要立即连接互联网。

    这一切都与您的崩溃无关,因为您引用的活动 (com.example.tfs.MainCalActivity) 在您的 APK 中不存在。

    【讨论】:

    • 好的,谢谢。我明白了,但我确实发布了错误的日志猫,抱歉,这是我正在从事的另一个项目的结果
    • 请注意,仅更改 MIME 类型表明意图查看文本文件。这可能不会显示电子邮件客户端。您可以通过将操作指定为 Intent.ACTION_SEND 来解决此问题,但这也是一个表述不当的意图。另请参阅this discussion between Mark and me
    猜你喜欢
    • 2020-05-30
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    • 1970-01-01
    • 2018-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多