Неявное EMAIL Intent Android;работает БЕЗ ФИЛЬТРА - PullRequest
0 голосов
/ 10 февраля 2019

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

1 Ответ

0 голосов
/ 10 февраля 2019

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

Intent intent = new Intent(Intent.ACTION_SENDTO);
intent.setType("text/plain");
intent.setData(Uri.parse("mailto:ejemplo@ejemplo.com"));
intent.putExtra(Intent.EXTRA_SUBJECT, "asunto de prueba");
intent.putExtra(Intent.EXTRA_TEXT, "probando el envio");
intent.putExtra(Intent.EXTRA_EMAIL, new String[]{"suppport@ourcompany.com"});
startActivity(intent);

Причина, по которой он работает, заключается в том, что Intent.ACTION_SENDTO - это общее «неявное» намерение, поддерживаемое многими приложениями на устройстве Android.Такие приложения, как, например, GMail, уже содержат действие с фильтром намерений, который обрабатывает действие android.intent.action.SENDTO.

Если вы пишете приложение электронной почты или другое приложение, способное отправлять сообщение, то вашему приложению следует также подумать о поддержке этого намеренного действия.

Если, с другой стороны, ваша цель - толькочтобы позволить пользователю отправлять электронную почту, тогда это не нужно, поскольку на устройстве Android уже есть много приложений, способных отправлять электронную почту.Кроме того, пользователь, скорее всего, предпочтет выбрать собственное почтовое приложение для задачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...