“我的导航抽屉”包含一个用于通过电子邮件与开发人员联系的选项。为此,我根据文档提供了代码。但是,单击“联系开发人员”时,显示的选项包括我的应用程序,该应用程序无法发送电子邮件。我已经在网上搜索了此问题,但未找到任何相关内容。如何将用户的选项限制为仅电子邮件应用程序? 下面包括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>
答案 0 :(得分:0)
@Mike M.的答案正确。
第二个意图过滤器表示您的应用程序确实可以处理电子邮件。您不需要它就可以发送电子邮件。删除它,您的应用程序将不再显示为选项。 – Mike M。
我不必要地从文档中复制了示例意图过滤器:。将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>
</activity>
</application>