ارسال ایمیل در اندروید :
در این مقاله قصد داریم یک محتوای متنی را با استفاده از Intent.ACTION_SENDبه یک آدرس ایمیل ارسال نماییم،
با استفاده از نرم افزار های ایمیل که موجود است می توانید ایمیل مورد نظر خود را به آدرسی که
وارد می نمایید ارسال کنید، و اگر سیستم اندروید شما نرم افزاری نداشته باشد به شما پیغام نصب نرم افزار را می دهد.
داخل الیه ی activityخود از textview و edittext برای وارد کردن اطالعات استفاده می نمایید:
LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/linearLayout1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:padding="5dp" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="مقصد" android:textAppearance="?android:attr/textAppearanceLarge" android:layout_gravity="right"/> <EditText android:id="@+id/toEmail" android:layout_width="fill_parent" android:layout_height="wrap_content" "لطفا ایمیل مقصد را وارد نمایید"=android:hint android:layout_gravity="right" android:gravity="right" > </EditText> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="موضوع" android:textAppearance="?android:attr/textAppearanceLarge" android:layout_gravity="right"/> <EditText android:id="@+id/subject" android:layout_width="fill_parent" android:layout_height="wrap_content" <"لطفا موضوع را وارد نمایید"=android:gravity="right" android:hint </EditText> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="پیام" android:textAppearance="?android:attr/textAppearanceLarge" android:gravity="right" android:layout_gravity="right"/> <EditText android:id="@+id/emailBody" android:layout_width="fill_parent"a ndroid:layout_height="wrap_content" android:gravity="top|right" android:inputType="textMultiLine" android:lines="5" android:layout_gravity="right" </"لطفا متن پیام را وارد نمایید"=android:hint /LinearLayout>
برای فرستادن ایمیل و پاک کردن متن های نوشته شده می خواهیم از یک منو استفاده کنیم، برای همین یک پوشه
به نام منو ایجاد نمایید و داخل آن یک فایل xml ایجاد نمایید و آیتم های منو را داخل آن قرار دهید:
menu xmlns:android="http://schemas.android.com/apk/res/android" ; <item android:id="@+id/menu_clear" android:icon="@android:drawable/ic_menu_close_clear_cancel" android:showAsAction="ifRoom|withText" android:title="Clear"/> <item android:id="@+id/menu_send" android:icon="@android:drawable/ic_menu_send" android:showAsAction="ifRoom|withText" android:title="Send"/> /menu>
حاال باید کلاس جاوا را برای ان تعریف نمایید به صورت زیر:
import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.EditText; public class MyActivity extends Activity { private EditText toEmail = null; private EditText emailSubject = null; private EditText emailBody = null; /** * Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); toEmail = (EditText) findViewById(R.id.toEmail); emailSubject = (EditText) findViewById(R.id.subject); emailBody = (EditText) findViewById(R.id.emailBody); } /** صدا زدن منو برای ارسال پیام * * * */ @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main_menu, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menu_clear: toEmail.setText(""); emailBody.setText(""); emailSubject.setText(""); break; case R.id.menu_send: String to = toEmail.getText().toString(); String subject = emailSubject.getText().toString(); String message = emailBody.getText().toString(); Intent email = new Intent(Intent.ACTION_SEND); email.putExtra(Intent.EXTRA_EMAIL, new String[] { to }); email.putExtra(Intent.EXTRA_SUBJECT, subject); email.putExtra(Intent.EXTRA_TEXT, message); // need this to prompts email client only email.setType("message/rfc822"); startActivity(Intent.createChooser(email, "Choose an Email client")); break; } return true; } }
برای فرستادن ایمیل مورد نظر از دستور switch استفاده شده است، این دستور از دو case استفاده شده است
یک case برای پاک کردن edittext استفاده می شود، و case دوم برای گرفتن اطالعات و ارسال به intent
ارسال ایمیل و با زدن آن ایمیل مورد نظر با استفاده از نرم افزار نصب شده روی سیتم اندروید خود ارسال می شود.
خروجی به صورت زیر است: