410013796724260
• Webmoney
R335386147728
Z369087728698
Intent отправки EmailВ данной статье рассматривается пример использования неявного намерения Intent для отправки Email сообщения. Для реализации данной функции в приложении необходимо определить доступ (uses-permission) в манифесте приложения, сформировать и вызвать неявное намерение отправки сообщения в активности.
Примечание : Определение uses-permission в манифесте AndroidManifest.xmlДля использования неявного намерения для отправки Email-сообщений следует в манифесте примера AndroidManifest.xml указать разрешения <uses-permission> на доступ к определенным функциям, как это представлено в следующем коде : <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.test.p09intent"> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_INTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <application . . . </application> </manifest> Описание интерфейсаПри описании интерфейса примера в файле «res/layout/activity_main.xml» (наименование может отличаться) используем шаблон типа RelativeLayout с кнопкой отправки Email сообщения. <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/rl" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="16dp" tools:context=".EmailActivity" android:background="#fdedfd" > <Button android:id="@+id/btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:text="Send email" android:textStyle="bold" android:textColor="#3e87ec" /> </RelativeLayout> Код активности EmailActivityАктивность EmailActivity реализует интерфейс View.OnClickListener, согласно которому переопределяется метод onClick. Вызов данного метода подключен к кнопке. В методе onClick определяется неявное намерение типа Intent.ACTION_SENDTO. Возможно использовать один из 3-х вариантов : Типы действий Action
import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.provider.CalendarContract; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.Toast; import java.util.Calendar; public class EmailActivity extends AppCompatActivity implements View.OnClickListener { private Context context; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_email); context = getApplicationContext(); Button btn = (Button) findViewById(R.id.btn); btn.setOnClickListener(this); } @Override public void onClick(View v) { String[] emails; String[] emailsCC; String[] emailsBCCl emails = new String[]{ "jim@example.com"}; // emails for cc emailsCC = new String[]{"tom@example.com"}; // emails for bcc emailsBCC = new String[]{"kate@example.com"}; String mailSubject = "Тема email"; String mailBody = "Текст сообщения"; // Initialize a new Intent Intent intent = new Intent(Intent.ACTION_SENDTO); intent.putExtra(Intent.EXTRA_EMAIL, emails); // Define the email cc and bcc intent.putExtra(Intent.EXTRA_CC , emailsCC); intent.putExtra(Intent.EXTRA_BCC, emailsBCC); intent.putExtra(Intent.EXTRA_SUBJECT, mailSubject); intent.putExtra(Intent.EXTRA_TEXT,mailBody); // For only email app should handle this intent intent.setData(Uri.parse("mailto:")); // Try to start the activity if (intent.resolveActivity( getPackageManager()) != null) { startActivity(intent); Toast.makeText(context, "Send email.", Toast.LENGTH_SHORT).show(); } else { // If there are no email client installed // in this device String err; err="No email client installed in this device."; Toast.makeText(context, err, Toast.LENGTH_SHORT).show(); } } } MIME TypeПри определении типа mime используйте следующие варианты :
Пример определения типа mime в фильтре намерения : <activity ...> <intent-filter> <action android:name="android.intent.action.SEND" /> <data android:type="*/*" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.SENDTO" /> <data android:scheme="mailto" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> Extra данныеПри определении типа данных возможны следующие варианты :
Связанные страницы |