آموزش برنامه نویسی اندروید با اندروید استودیو (بخش چهل و نهم: PhoneCall )

استاندارد

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

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

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

این آموزش را به ساده ترین نحو پیش می بریم.

برای این کار یک EditText ایجاد می کنیم. کاربر می تواند شماره ای که می خواهد با آن تماس بگیرد را در EditText وارد نماید.

شماره ی داخل EditText را به ACTION_Dial می فرستیم. ACTION_DIAL وظیفه ی عملیات تماس را دارد.

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

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

در پروژه ی ایجاد شده به سراغ Layout اپلیکیشن (activity_main.xml) می روم.

سپس از قسمت PlainText در ابزار ها یک ابزار Phone را به لایه اپلیکیشن خود اضافه می کنم.

به آیدی این ابزار “PhoneText” را بدهید. (ID=PhoneText)

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

یک Button به لایه اپلیکیشن خود اضافه کرده و نام آن را ( و نه آیدی) Call بذارید.

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

می توانید کد دو ابزاری که من اضافه کردم را در زیر مشاهده نمایید:

<EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="phone"
        android:ems="10"
        android:id="@+id/PhoneText"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="171dp" />

<Button
        android:text="Call"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/PhoneText"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="34dp"
        android:id="@+id/button" />

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

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

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

EditText myPhoneText;
Button myButton;

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

myPhoneText =(EditText)findViewById(R.id.PhoneText);
myButton =(Button)findViewById(R.id.button);

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

myButton.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {

                String number = myPhoneText.getText().toString();

                Intent callIntent = new Intent(Intent.ACTION_DIAL);
                callIntent.setData(Uri.parse("tel:"+number));

                startActivity(callIntent);
            }

        });

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

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

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

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

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

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

کد کامل MainActivity

package com.gsm_developers.phonecall_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 myPhoneText;
    Button myButton;


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

        myPhoneText = (EditText) findViewById(R.id.PhoneText);
        myButton = (Button) findViewById(R.id.button);

        myButton.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {

                String number = myPhoneText.getText().toString();

                Intent callIntent = new Intent(Intent.ACTION_DIAL);
                callIntent.setData(Uri.parse("tel:"+number));

                startActivity(callIntent);
            }

        });
    }
}

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

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

Call را میزنیم و مشاهده می کنیم که صفحه تماس باز می شود. (اکتیویتی تماس)

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

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