Как я могу отправлять электронные письма из моего приложения Android?

BFS может быть разумным, если граф неориентирован (будь моим гостем, показывая эффективный алгоритм с использованием BFS, который будет сообщать о циклах в ориентированном графике!), где каждый «перекрестный край» определяет цикл. Если кросс-ребро {v1, v2}, а корень (в дереве BFS), который содержит эти узлы, r, тогда цикл равен r ~ v1 - v2 ~ r (~ - путь, - - единственный край) о котором можно сообщать почти так же легко, как в DFS.

Единственная причина использования BFS - если вы знаете, что ваш (неориентированный) график будет иметь длинные пути и малую дорожку (другими словами, глубокую и узкую). В этом случае BFS потребует пропорционально меньше памяти для своей очереди, чем стек DFS (оба по-прежнему линейны, конечно).

Во всех остальных случаях DFS явно побеждает. Он работает как с направленными, так и неориентированными графами, и тривиально сообщать о циклах - просто конкатьте любой задний край на путь от предка до потомка, и вы получите цикл. В целом, гораздо лучше и практичнее, чем BFS для этой проблемы.

501
задан Amir Rachum 6 September 2014 в 20:34
поделиться

3 ответа

Лучший (и самый простой) способ - использовать намерение :

Intent i = new Intent(Intent.ACTION_SEND);
i.setType("message/rfc822");
i.putExtra(Intent.EXTRA_EMAIL  , new String[]{"recipient@example.com"});
i.putExtra(Intent.EXTRA_SUBJECT, "subject of email");
i.putExtra(Intent.EXTRA_TEXT   , "body of email");
try {
    startActivity(Intent.createChooser(i, "Send mail..."));
} catch (android.content.ActivityNotFoundException ex) {
    Toast.makeText(MyActivity.this, "There are no email clients installed.", Toast.LENGTH_SHORT).show();
}

В противном случае вам придется написать своего собственного клиента.

953
ответ дан 22 November 2019 в 22:35
поделиться

Попробуйте это:

String mailto = "mailto:bob@example.org" +
    "?cc=" + "alice@example.com" +
    "&subject=" + Uri.encode(subject) +
    "&body=" + Uri.encode(bodyText);

Intent emailIntent = new Intent(Intent.ACTION_SENDTO);
emailIntent.setData(Uri.parse(mailto));

try {
    startActivity(emailIntent);
} catch (ActivityNotFoundException e) {
    //TODO: Handle case where no email app is available
}

вышеупомянутый код откроет пользовательский почтовый клиент фаворита, предварительно заполненный электронной почтой, готовой отправить.

Источник

1
ответ дан 22 November 2019 в 22:35
поделиться

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

Создание и отправка более сложного электронного письма без взаимодействия с пользователем влечет за собой создание собственного клиента. Во-первых, недоступны Sun Java API для электронной почты. Мне удалось использовать библиотеку Apache Mime4j для создания электронной почты. Все основано на документации nilvec .

12
ответ дан 22 November 2019 в 22:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: