gpt4 book ai didi

android - 为什么隐式电子邮件 Intent 可以在不指定 IntentFilter 的情况下工作?

转载 作者:行者123 更新时间:2023-11-30 05:05:51 26 4
gpt4 key购买 nike

我使用隐式电子邮件 Intent 创建了一个电子邮件应用程序:

enter image description here

我知道我需要在 list 文件中添加 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>

我的问题是,为什么在移除 intent-filter 后它仍然可以正常工作?。我无法理解为什么它在没有任何过滤器信息的情况下工作。Android 文档说:

To pass this filter, the action specified in the Intent must match oneof the actions listed in the filter. If the filter does not list anyactions, there is nothing for an intent to match, so all intents fail the test. However, if an Intent does not specify anaction, it passes the test as long as the filter contains at least oneaction

最佳答案

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

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 是一种通用的“非显式” Intent ,Android 设备上的许多应用都支持该 Intent 。这些应用程序(例如 GMail)已经包含一个带有处理 android.intent.action.SENDTO 操作的 intent 过滤器的 Activity 。

如果您正在编写电子邮件应用或其他能够发送消息的应用,那么您的应用也应该考虑支持此 Intent 操作。

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

关于android - 为什么隐式电子邮件 Intent 可以在不指定 IntentFilter 的情况下工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54612512/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com