Неявное EMAIL Intent Android; работает БЕЗ ФИЛЬТРА

1

Я создал почтовое приложение, используя неявный электронный адрес 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 не указывает действие, оно проходит тест, пока фильтр содержит хотя бы одно действие.

Теги:
android-intent

1 ответ

0

Код в связанном изображении похож на это:

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 уже есть много приложений, способных отправлять электронную почту. Кроме того, пользователь, скорее всего, предпочтет выбрать собственное почтовое приложение для такой задачи.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню