Я создал почтовое приложение, используя неявный электронный адрес Intent Mycode
Я знаю, мне нужно добавить 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>
ПРОБЛЕМА: Мой вопрос заключается в том, что, когда я удаляю эти фильтры, он все еще работает хорошо. Я не могу понять, почему он работает без фильтра информации. Документация Android гласит
Чтобы пропустить этот фильтр, действие, указанное в намерении, должно соответствовать одному из действий, перечисленных в фильтре. Если в фильтре не перечислены какие-либо действия, у цели нет ничего для совпадения, поэтому весь
enter code here
намеренenter code here
проверку. Однако, если Intent не указывает действие, оно проходит тест, пока фильтр содержит хотя бы одно действие.
Код в связанном изображении похож на это:
Intent intent = new Intent(Intent.ACTION_SENDTO);
intent.setType("text/plain");
intent.setData(Uri.parse("mailto:[email protected]"));
intent.putExtra(Intent.EXTRA_SUBJECT, "asunto de prueba");
intent.putExtra(Intent.EXTRA_TEXT, "probando el envio");
intent.putExtra(Intent.EXTRA_EMAIL, new String[]{"[email protected]"});
startActivity(intent);
Причина, по которой это работает, заключается в том, что Intent.ACTION_SENDTO - это общее "неявное" намерение, поддерживаемое многими приложениями на устройстве Android. Такие приложения, как, например, GMail, уже содержат действие с фильтром намерений, который обрабатывает действие android.intent.action.SENDTO
.
Если вы пишете приложение электронной почты или другое приложение, способное отправлять сообщения, то вашему приложению следует также рассмотреть возможность поддержки этого намеренного действия.
Если, с другой стороны, ваша цель состоит только в том, чтобы позволить пользователю отправлять электронную почту, то это не нужно, поскольку на устройстве Android уже есть много приложений, способных отправлять электронную почту. Кроме того, пользователь, скорее всего, предпочтет выбрать собственное почтовое приложение для такой задачи.