Полезные примеры Android

Полезные примеры Android
Android — отправка электронной почты

Электронная почта — это сообщения, распространяемые электронными средствами от одного пользователя системы к одному или нескольким получателям через сеть.

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

Чтобы отправить электронное письмо из вашего приложения, вам не нужно внедрять почтовый клиент с самого начала, но вы можете использовать уже существующий, например, приложение электронной почты по умолчанию, предоставляемое из Android, Gmail, Outlook, K-9 Mail и т. Д. Для этого нам нужно написать Activity, который запускает почтовый клиент, используя неявное намерение с правильным действием и данными. В этом примере мы собираемся отправить электронное письмо из нашего приложения, используя объект Intent, который запускает существующие почтовые клиенты.

В следующем разделе объясняются различные части нашего объекта Intent, необходимые для отправки электронной почты.

Объект Intent — действие для отправки электронной почты

Вы воспользуетесь действием ACTION_SEND, чтобы запустить почтовый клиент, установленный на вашем устройстве Android. Ниже приведен простой синтаксис для создания намерения с действием ACTION_SEND.

Intent emailIntent = new Intent(Intent.ACTION_SEND);

Объект Intent — данные / тип для отправки электронной почты

Чтобы отправить электронное письмо, вам необходимо указать mailto: as URI с использованием метода setData (), а тип данных будет text / plain с использованием метода setType () следующим образом:

emailIntent.setData(Uri.parse("mailto:"));
emailIntent.setType("text/plain");

Объект Intent — Дополнительно для отправки электронной почты

Android имеет встроенную поддержку для добавления полей TO, SUBJECT, CC, TEXT и т. Д., Которые можно прикрепить к намерению перед отправкой намерения целевому почтовому клиенту. Вы можете использовать следующие дополнительные поля в своем электронном письме —

Sr.No. Дополнительные данные и описание
1

EXTRA_BCC

Строка [], содержащая адреса электронной почты, которые следует слепо скопировать.

2

EXTRA_CC

Строка [], содержащая адреса электронной почты, которые следует скопировать.

3

EXTRA_EMAIL

Строка [], содержащая адреса электронной почты, на которые следует доставить.

4

EXTRA_HTML_TEXT

Постоянная строка, связанная с намерением, используется с ACTION_SEND для предоставления альтернативы EXTRA_TEXT в виде текста в формате HTML.

5

EXTRA_SUBJECT

Постоянная строка, содержащая желаемую тему сообщения.

6

EXTRA_TEXT

Константа CharSequence, связанная с намерением, используется с ACTION_SEND для предоставления литеральных данных для отправки.

7

EXTRA_TITLE

Заголовок диалога CharSequence, предоставляемый пользователю при использовании с ACTION_CHOOSER.

Вот пример, показывающий, как назначить дополнительные данные для вашего намерения —

emailIntent.putExtra(Intent.EXTRA_EMAIL  , new String[]{"Recipient"});
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "subject");
emailIntent.putExtra(Intent.EXTRA_TEXT   , "Message Body");

Результат приведенного выше кода выглядит следующим образом: изображение

Электронное письмо

Пример электронной почты

Пример

Следующий пример показывает вам на практике, как использовать объект Intent для запуска клиента электронной почты для отправки электронной почты указанным получателям.

Чтобы поэкспериментировать с этим примером по электронной почте, вам понадобится настоящее мобильное устройство с последней версией ОС Android, в противном случае вы можете столкнуться с проблемой эмулятора, который может работать некорректно. Во-вторых, вам понадобится почтовый клиент, такой как GMail (по умолчанию каждая версия Android имеет клиентское приложение Gmail) или K9mail, установленный на вашем устройстве.

Шаг Описание
1 Вы будете использовать Android studio для создания Android-приложения и назовете его Tutorialspoint в пакете com.example.tutorialspoint .
2 Измените файл src / MainActivity.java и добавьте необходимый код для отправки электронной почты.
3 Измените XML-файл макета res / layout / activity_main.xml, добавьте при необходимости любой компонент графического интерфейса. Я добавляю простую кнопку для запуска почтового клиента.
4 Измените файл res / values ​​/ strings.xml, чтобы определить необходимые постоянные значения.
5 Измените AndroidManifest.xml, как показано ниже.
6 Запустите приложение, чтобы запустить эмулятор Android и проверить результат изменений, внесенных в приложение.

Ниже приводится содержимое измененного файла основного действия src / com.example.Tutorialspoint / MainActivity.java .

package com.example.tutorialspoint;
import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button startBtn = (Button) findViewById(R.id.sendEmail);
startBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
sendEmail();
}
});
}
protected void sendEmail() {
Log.i("Send email", "");
String[] TO = {""};
String[] CC = {""};
Intent emailIntent = new Intent(Intent.ACTION_SEND);
emailIntent.setData(Uri.parse("mailto:"));
emailIntent.setType("text/plain");
emailIntent.putExtra(Intent.EXTRA_EMAIL, TO);
emailIntent.putExtra(Intent.EXTRA_CC, CC);
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Your subject");
emailIntent.putExtra(Intent.EXTRA_TEXT, "Email message goes here");
try {
startActivity(Intent.createChooser(emailIntent, "Send mail..."));
finish();
Log.i("Finished sending email...", "");
} catch (android.content.ActivityNotFoundException ex) {
Toast.makeText(MainActivity.this, "There is no email client installed.", Toast.LENGTH_SHORT).show();
}
}
}

Ниже будет содержимое файла res / layout / activity_main.xml

Здесь abc указывает на логотип tutorialspoint

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Sending Mail Example"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:textSize="30dp" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tutorials point "
android:textColor="#ff87ff09"
android:textSize="30dp"
android:layout_above="@+id/imageButton"
android:layout_alignRight="@+id/imageButton"
android:layout_alignEnd="@+id/imageButton" />
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton"
android:src="@drawable/abc"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true" />
<Button 
android:id="@+id/sendEmail"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/compose_email"/>
</LinearLayout>

Ниже будет содержимое файла res / values ​​/ strings.xml для определения двух новых констант:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Tutorialspoint</string>
<string name="compose_email">Compose Email</string>
</resources>

Ниже содержание по умолчанию AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.Tutorialspoint" >
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.tutorialspoint.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>

Попробуем запустить ваше приложение tutorialspoint . Я предполагаю, что вы подключили свое настоящее мобильное устройство Android к компьютеру. Чтобы запустить приложение из Android Studio, откройте один из файлов активности вашего проекта и щелкните Значок запуска Eclipseзначок « Выполнить» на панели инструментов. Перед запуском вашего приложения установщик студии Android отобразит следующее окно, чтобы выбрать вариант, в котором вы хотите запустить приложение Android. Выберите свое мобильное устройство в качестве опции, а затем проверьте свое мобильное устройство, которое отобразит следующий экран —

Мобильное устройство Android

Теперь используйте кнопку « Написать письмо», чтобы вывести список всех установленных почтовых клиентов. Из списка вы можете выбрать один из почтовых клиентов для отправки электронной почты. Я собираюсь использовать клиент Gmail для отправки электронной почты, в которой будут доступны все предоставленные поля по умолчанию, как показано ниже. Здесь От: будет идентификатор электронной почты по умолчанию, который вы зарегистрировали для своего устройства Android.

Экран Gmail для мобильных устройств Android

Вы можете изменить любое из заданных полей по умолчанию и, наконец, использовать кнопку «Отправить письмо», чтобы отправить письмо указанным получателям.

Select the fields to be shown. Others will be hidden. Drag and drop to rearrange the order.
  • Image
  • SKU
  • Rating
  • Price
  • Stock
  • Availability
  • Add to cart
  • Description
  • Content
  • Weight
  • Dimensions
  • Additional information
  • Attributes
  • Custom attributes
  • Custom fields
Click outside to hide the compare bar
Compare