我在线搜索了查询,并在AndroidManifest.xml文件中找到了intent-filter
。但是,我仍然无法找到如何在我的应用程序中接收点击的电子邮件ID。
我的问题
我尝试过以下功能:
@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显示为空,表示没有收到字符串。
答案 0 :(得分:1)
我认为电子邮件意图真的是为发送/撰写电子邮件而设计的,而不是用于将电子邮件中的数据复制到您的应用程序中。见这里:
http://developer.android.com/guide/components/intents-common.html#Email
如果您想获取某人的电子邮件地址,您可能需要尝试联系人意图:
http://developer.android.com/guide/components/intents-common.html#Contacts
答案 1 :(得分:0)
如果某个应用通过ACTION_VIEW
Intent
调用您的活动,则该应用没有任何文档记录方式可以为您提供电子邮件地址。
如果某个应用通过ACTION_SENDTO
Intent
调用您的活动,则该电子邮件地址将位于Uri
。 Uri
方案应为mailto:
(就像您的过滤器限制它一样)。我认为您通过getSchemeSpecificPart()
上的Uri
获取了地址,但我还没试过。
请注意,当用户点击电子邮件地址时,不要求应用启动任何第三方活动,更不用说通过<intent-filter>
设置的两个活动中的一个。