آموزش برنامه نویسی اندروید با اندروید استودیو (بخش چهل و نهم: 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 را میزنیم و مشاهده می کنیم که صفحه تماس باز می شود. (اکتیویتی تماس)

گزارش شرکت مایکروسافت برای ایجاد تغییرات در نرم افزار Skype

استاندارد

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

و حتما نام آن را شنیده اید.

skype_android_gsm-developers

شرکت مایکروسافت نرم افزار Skype را در سال 2011 به قیمت 8/5 میلیارد دلار خرید.

با استفاده ازنرم افزار Skype ، افراد می توانند با دیگران تماس تلفنی داشته باشند.

و همچنین می توانند فایل، ویدیو  و پست صوتی خود را در اختیار کاربران قرار دهند.

تماس تلفنی و ویدیویی برای کاربران Skype رایگان است.

اما برای تماس با تلفن ثابت و تلفن موبایل از طریق Skype نیاز به خرید اعتباری می باشد.

در حال حاضر نرم افزار کاربردی Skype تقریبا از همه سیستم عامل ها از جمله اندروید، ویندوز، مک، لینوکس و …. پشتیبانی می کند.

کاربردهای نرم افزار Skype

1-  چت کردن و برقراری تماس تلفنی با کاربران حتی از طریق شماره ثابت و یا شماره موبایل

2- تماس با دیگر کاربران اسکایپ به صورت گروهی به وسیله صوت، تصویر و نوشته

گزارش تغییرات در Skype

شرکت مایکروسافت اعلام کرد که قصد دارد تغییراتی را در نرم افزار Skype ایجاد کند.

و مدرن کردن نرم افزار Skype بخشی از برنامه های مایکروسافت طی چند هفته آینده است.

با انجام تغییرات در Skype نسخه جدید آن امکان برقراری هر گونه ارتباط تلفنی از جمله تماس تصویری را برای کاربران فراهم خواهد کرد.