【发布时间】:2019-08-16 15:03:34
【问题描述】:
我的导航抽屉包括一个通过电子邮件联系开发者的选项。为此,我根据文档包含了代码。但是,当单击“联系开发人员”时,显示的选项包括我的应用程序,该应用程序不支持电子邮件。我在网上搜索过这个问题,但没有找到任何相关的东西。如何将用户的选项仅限于电子邮件应用程序? 下面包括 MainActivity.java 中的方法和 AndroidManfiest 中的 intent-filter。
MainActivity.java
//METHOD: Allow user's to send email to developer
public void composeEmail() {
Intent emailIntent = new Intent(Intent.ACTION_SENDTO);
emailIntent.setData(Uri.parse("mailto:")); // only email apps should handle this
emailIntent.putExtra(Intent.EXTRA_EMAIL, "contact@developer.com");
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Email subject");
if (emailIntent.resolveActivity(getPackageManager()) != null) {
startActivity(emailIntent);
}
}
AndroidManifest.xml
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme.Launcher">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<!--Intent filter for sending email-->
<intent-filter>
<action android:name="android.intent.action.SENDTO" />
<data android:scheme="mailto" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
【问题讨论】:
-
第二个
<intent-filter>表示您的应用确实处理电子邮件。您不需要它就可以发送电子邮件。删除它,您的应用将不再显示为选项。 -
移除 Intent-filter :
-
解决了。谢谢。
-
@MikeM。有正确的答案。更正的代码在下面的答案中。