隐式EMAIL Intent Android;不带过滤器工作

时间:2019-02-10 01:24:13

标签: android android-intent

我使用隐式电子邮件意图创建了一个电子邮件应用程序 Mycode

我知道,我需要在清单文件中添加FILTER。它使用了这些过滤器。

<intent-filter>
    <action android:name="android.intent.action.SENDTO"></action>
    <data android:mimeType="*/*"></data>
    <data android:scheme="mailto" />
    <category android:name="android.intent.category.DEFAULT"></category>
</intent-filter>

问题: 我的问题是,当我删除这些过滤器时,它仍然运行良好。我无法理解为什么没有过滤器信息就可以正常工作。 Android文档说

  

要通过此过滤器,Intent中指定的操作必须与一个匹配   过滤器中列出的操作。如果过滤器未列出任何内容   动作,没有意图可以匹配,因此所有enter code here意图都无法通过测试。但是,如果Intent没有指定   操作,只要过滤器包含至少一个,它就可以通过测试   行动

1 个答案:

答案 0 :(得分:0)

链接图像中的代码与此类似:

Intent intent = new Intent(Intent.ACTION_SENDTO);
intent.setType("text/plain");
intent.setData(Uri.parse("mailto:ejemplo@ejemplo.com"));
intent.putExtra(Intent.EXTRA_SUBJECT, "asunto de prueba");
intent.putExtra(Intent.EXTRA_TEXT, "probando el envio");
intent.putExtra(Intent.EXTRA_EMAIL, new String[]{"suppport@ourcompany.com"});
startActivity(intent);

之所以起作用,是因为Intent.ACTION_SENDTO是Android设备上许多应用程序支持的通用“非显式”意图。例如,这些应用程序(例如GMail)已经包含带有意图过滤器的活动,该意图过滤器可以处理android.intent.action.SENDTO动作。

如果您正在编写电子邮件应用程序或其他能够发送消息的应用程序,则您的应用程序也应考虑支持此意图操作。

如果另一方面,您的目标只是允许用户发送电子邮件,那么这是不必要的,因为Android设备上已经有许多能够发送电子邮件的应用程序。此外,用户很可能更愿意为任务选择自己的电子邮件应用。