如何使用 Intent Filter 从系统接收电子邮件?
How to receive email from system, using Intent Filter?
我在网上搜索了查询,并在 AndroidManifest.xml 文件中找到了 intent-filter
。但是,我仍然无法在我的应用程序中找到如何接收点击的电子邮件 ID。
我的问题
- 假设我在我的 WhatsApp 聊天框中收到一条包含电子邮件 ID (xyz@test.com) 的消息。
- 单击电子邮件 ID (xyz@test.com) 后,我希望打开我的应用程序。 (图,使用 Intent-filter)
- 打开我的应用程序后,我希望将电子邮件 ID (xyz@test.com) 自动复制到我 activity 上的 EditText 中。
我试过以下功能:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = getIntent();
String x = intent.getExtras().getString(Intent.EXTRA_EMAIL);
Toast.makeText(MainActivity.this, x, Toast.LENGTH_SHORT).show();
}
*Toast用于检查是否收到字符串。
但是,toast 显示为空,表明未收到字符串。
我相信电子邮件意图确实是为 sending/composing 电子邮件而设计的,而不是为了将电子邮件中的数据复制到您的应用程序中。看这里:
http://developer.android.com/guide/components/intents-common.html#Email
如果您想获取某人的电子邮件地址,您可能想试试联系人意图:
http://developer.android.com/guide/components/intents-common.html#Contacts
如果某个应用程序通过 ACTION_VIEW
Intent
调用您的 activity,则该应用程序无法为您提供电子邮件地址。
如果应用程序通过 ACTION_SENDTO
Intent
调用您的 activity,电子邮件地址将在 Uri
中。该 Uri
方案应该是 mailto:
(因为您的过滤器将其限制为)。我 认为 你通过 Uri
上的 getSchemeSpecificPart()
获得了地址,虽然我没有尝试过这个。
请注意,当用户单击电子邮件地址时,应用程序不需要启动任何第三方 activity,更不用说您通过 <intent-filter>
.
我在网上搜索了查询,并在 AndroidManifest.xml 文件中找到了 intent-filter
。但是,我仍然无法在我的应用程序中找到如何接收点击的电子邮件 ID。
我的问题
- 假设我在我的 WhatsApp 聊天框中收到一条包含电子邮件 ID (xyz@test.com) 的消息。
- 单击电子邮件 ID (xyz@test.com) 后,我希望打开我的应用程序。 (图,使用 Intent-filter)
- 打开我的应用程序后,我希望将电子邮件 ID (xyz@test.com) 自动复制到我 activity 上的 EditText 中。
我试过以下功能:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = getIntent();
String x = intent.getExtras().getString(Intent.EXTRA_EMAIL);
Toast.makeText(MainActivity.this, x, Toast.LENGTH_SHORT).show();
}
*Toast用于检查是否收到字符串。
但是,toast 显示为空,表明未收到字符串。
我相信电子邮件意图确实是为 sending/composing 电子邮件而设计的,而不是为了将电子邮件中的数据复制到您的应用程序中。看这里:
http://developer.android.com/guide/components/intents-common.html#Email
如果您想获取某人的电子邮件地址,您可能想试试联系人意图:
http://developer.android.com/guide/components/intents-common.html#Contacts
如果某个应用程序通过 ACTION_VIEW
Intent
调用您的 activity,则该应用程序无法为您提供电子邮件地址。
如果应用程序通过 ACTION_SENDTO
Intent
调用您的 activity,电子邮件地址将在 Uri
中。该 Uri
方案应该是 mailto:
(因为您的过滤器将其限制为)。我 认为 你通过 Uri
上的 getSchemeSpecificPart()
获得了地址,虽然我没有尝试过这个。
请注意,当用户单击电子邮件地址时,应用程序不需要启动任何第三方 activity,更不用说您通过 <intent-filter>
.