خانه » آموزش های برنامه نویسی اندروید » آموزش اندروید استودیو » آموزش برنامه نویسی اندروید با اندروید استودیو (بخش پنجاه: ارسال پیامک Sms با استفاده از پیام رسان پیش فرض اندروید )

آموزش برنامه نویسی اندروید با اندروید استودیو (بخش پنجاه: ارسال پیامک Sms با استفاده از پیام رسان پیش فرض اندروید )

در بخش قبلی به قابلیت PhoneCall در برنامه نویسی اندروید، پرداختیم.

با استفاده از PhoneCall می توانستیم با دادن یک شماره ، و زدن یک دکمه Button که بر روی آن “تماس” نوشته شود، به آن شماره زنگ بزنیم.

در این بخش ، قابلیت دیگر ارتباطی یعنی ارسال پیامک را در برنامه نویسی اندروید آموزش می دهیم.

این آموزش، بسیار شبیه به بخش قبلی می باشد.

این بار با استفاده از دو مورد شماره و پیام، پیام را به شماره ای که می خواهیم می فرستیم.

برای این پروژه ما از Intent که در بخش قبلی آن را آموزش دادیم ، استفاده می کنیم. زیرا Intent قادر است داده ای را به صورت پیام به activity دیگری بفرستد.

ما برای ارسال پیام نیز به اکتیویتی تماس احتیاج داریم. پس شماره و پیام را به این اکتیویتی با استفاده از اینتنت می فرستیم.

دو  EditText ایجاد می کنیم.

یکی از آن ها که یک نوع PlainText است، کاربر پیام خود را وارد می کند.

کاربر می تواند شماره ای که می خواهد به آن پیام ارسال کند را در EditText که یک ابزار Phone است، وارد نماید.

شماره و پیام  داخل این دو ابزار را به ACTION_VIEW می فرستیم. ACTION_VIEW وظیفه ی عملیات ارسال پیامک را دارد.

من یک پروژه در اندروید استودیو به نام Sms-Gsm ایجاد می کنم.

به قسمت لایه اپلیکیشن می روم و سپس از قسمت Text Fields ها در Palette ، یک ابزار Plain Text و یک ابزار Phone به Layout برنامه اضافه می کنم.

از قسمت Widget ها هم یک دکمه Button را برای ارسال اضافه میکنم.

کدهای Layout اپلیکیشن

<?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/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.gsm_developers.sms_gsm.MainActivity">

    <EditText
        android:layout_width="300dp"
        android:layout_height="200dp"
        android:inputType="textPersonName"
        android:text="write your text"
        android:ems="10"
        android:layout_marginTop="23dp"
        android:id="@+id/editText"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="phone"
        android:ems="10"
        android:layout_below="@+id/editText"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="37dp"
        android:id="@+id/editText2" />

    <Button
        android:text="Send"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/editText2"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="53dp"
        android:id="@+id/button" />
</RelativeLayout>

به سراغ قسمت کدنویسی جاوای پروژه می رویم.

ابتدا باید سه ابزار PlainText که برای Message به کار می رود و Phone که یک EditText است و دکمه Button را به قسمت جاوای برنامه معرفی کنم.

پس دو شی EditText و یک شی Button خارج از متد ()onCreate به صورت سراسری ایجاد می کنم.

EditText Message;
EditText PhoneNumber;
Button SendButton;

حال در متد ()onCreate این سه شی را با استفاده از آیدی هایی که در لایه اپلیکیشن به سه ابزارمان دادیم، مقدار دهی میکنم.

Message =(EditText)findViewById(R.id.editText);
PhoneNumber =(EditText)findViewById(R.id.editText2);
SendButton =(Button)findViewById(R.id.button);

در مرحله ی بعدی یک رویداد Listener برای دکمه ایجاد می کنم تا وقتی بر روی دکمه Button کلیک شد، عملیاتی که می خواهیم را برای ما انجام دهد.

SendButton.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {

                String Msg = Message.getText().toString();
                String nmbr = PhoneNumber.getText().toString();

                Intent intent = new Intent( Intent.ACTION_VIEW, Uri.parse( "sms:" + nmbr));
                intent.putExtra( "sms_body", Msg );
                startActivity(intent);
            }

        });

در کد بالا ابتدا با استفاده از متد ()getText().toString ، پیام و شماره ای که در ابزار Plain Text و phone وجود دارد، به رشته تبدیل شده و به متغیرهای Msg و nmbr که یک نوع رشته هستند، داده می شود.

این کار لازم است زیرا ما می خواهیم پیام را در Intent به صورت رشته ارسال نماییم.

سپس یک شی به نام intent از نوع Intent می سازیم و Intent.ACTION_VIEW را به آن نسبت می دهیم.

در قسمت بعدی با استفاده از متد putExtra که در کلاس Intent وجود دارد، شی intent را مقداردهی می کنیم.

(در این قسمت پیامی که داده ایم ، به عنوان یکی از پارامترهای شی intent مورد استفاده قرار می گیرد)

در آخر با استفاده از متد startActivity این اکتیویتی را شروع می کنیم.

کد کامل MainActivity

package com.gsm_developers.sms_gsm;

import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends AppCompatActivity {

    EditText Message;
    EditText PhoneNumber;
    Button SendButton;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Message =(EditText)findViewById(R.id.editText);
        PhoneNumber =(EditText)findViewById(R.id.editText2);
        SendButton =(Button)findViewById(R.id.button);

        SendButton.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {

                String Msg = Message.getText().toString();
                String nmbr = PhoneNumber.getText().toString();

                Intent intent = new Intent( Intent.ACTION_VIEW, Uri.parse( "sms:" + nmbr));
                intent.putExtra( "sms_body", Msg );
                startActivity(intent);
            }

        });
    }
}

پروژه را Run می کنیم.

پیام و شماره مورد نظر خود را وارد می کنیم.

Send را میزنیم و مشاهده می کنیم که صفحه ارسال پیامک sms فراخوانی می شود. (اکتیویتی ارسال پیامک)

   

لینک کوتاه مطلب : http://www.gsm-developers.com/?p=17268

درباره ی Arash

طراح سایت و برنامه نویس

همچنین ببینید

آموزش برنامه نویسی اندروید با اندروید استودیو (بخش پنجاه و هفتم: خواندن از فایل Text در دایرکتوری معین )

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *