آموزش تماس های تلفنی در برنامه نویسی اندروید
اندروید؛ اپلیکیشن های داخلی برای تماس های تلفنی فراهم آورده است؛ در برخی از موقعیت ها، ممکن است نیاز داشته باشیم که از طریق اپلیکیشن مان؛ یک تماس تلفنی ایجاد کنیم. این امر می تواند به سادگی با استفاده از اینتنت های ضمنی با actionهای مناسب؛ انجام شود. همچنین؛ می توانیم از کلاس های PhoneStateListener و TelephonyManager استفاده کنیم تا تغییرات در برخی از شرایط تلفنی در دستگاه را نظارت نماییم.
این فصل، تمام مراحل ساده ای را فهرست می کند که باید برای ایجاد یک اپلیکیشن که بتواند تماس تلفنی ایجاد کند؛ اتخاذ شود. شما با فراخوانی عملکرد تماس تلفنی داخلی اندروید؛ می توانید از اینتنت اندروید برای ایجاد یک تماس تلفنی استفاده کنید.
عملیات-شیء اینتنت برای ایجاد یک تماس تلفنی
شما از ACTION_CALL برای تریگر کردن عملکرد تماس تلفنی داخلی موجود در دستگاه اندروید استفاده می کنید. سینتکس ساده ی زیر؛ برای ایجاد یک اینتنت با ACTION_CALL به کار می رود:
Intent phoneIntent = new Intent(Intent.ACTION_CALL);
شما می توانید از ACTION_DIAL به جای ACTION_CALL استفاده کنید؛ در این صورت شما گزینه ای خواهید داشت که می توانید شماره تلفن با کد نویسی سخت را پیش از برقراری تماس ، به جای آن که یک تماس مستقیم ایجاد نمایید؛ اصلاح کنید.
نوع/داده اینتنت برای ایجاد یک تماس تلفنی
برای این که یک تماس تلفنی با شماره تلفن داده شده ی ۹۱-۰۰۰-۰۰۰-۰۰۰۰ برقرار کنید؛ باید مانند زیر؛ tel را با استفاده از متد setData() به صورت URI مشخص کنید.
phoneIntent.setData(Uri.parse(“tel:91-000-000-0000”));
نکته جالب توجه آن است که برای ایجاد یک تماس تلفنی؛ شما نیازی ندارید که هیچ داده یا نوع داده ی اضافه ای را مشخص نمایید.
مثال
مثال زیر به شما به صورت عملی نشان می دهد که چگونه می توانید از اینتنت اندروید برای ایجاد یک تماس تلفنی با شماره تلفن داده شده؛ استفاده کنید.
برای آزمایش کردن این مثال، شما به یک دستگاه تلفن واقعی نیاز دارید که به آخرین نسخه از سیستم عامل اندروید مجهز شده باشد؛ در غیر این صورت؛ شما احتمالاً با شبیه ساز درگیر می شوید زیرا ممکن است به درستی کار نکند.
مرحله | توضیح |
۱ | شما برای ایجاد یک اپلیکیشن اندروید از استودیو اندرویدIDE استفاده می کنید و آن را تحت بسته ی com.example.saira_000.myapplication به عنوان MyApplication نام گذاری کنید. |
۲ | اصلاح فایل src/mainActivity.java و اضافه کردن کد مورد نیاز برای مراقبت از برقراری تماس |
۳ | اصلاح فایل XML صفحه بندی res/layout/activity_main.xml هر مؤلفه GUI مورد نیاز را اضافه می کند. من فقط یک دکمه ساده را برای تماس با شماره ۹۱-۰۰۰-۰۰۰-۰۰۰۰ اضافه کرده ام. |
۴ | نیازی به تعریف ثابت های رشته ای پیشفرض در res/values/strings.xml نیست. استودیو اندروید از ثابت های پیشفرض مراقبت می کند . |
۵ | اصلاح AndroidManifest.xml به صورتی که در زیر نشان داده شده است. |
۶ | اجرای اپلیکیشن برای راه اندازی شبیه ساز اندروید و تأیید این امر که نتیجه تغییرات در اپلیکیشن انجام شده است. |
در ادامه می توانید محتوای فایل activity اصلی اصلاح شده src/MainActvity.java را مشاهده کنید:
package com.example.saira_000.myapplication;
import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.buttonCall);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse(“tel:0377778888”));
if (ActivityCompat.checkSelfPermission(MainActivity.this,
Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
return;
}
startActivity(callIntent);
}
});
برنامه نویسی اندروید رو قورت بده! بدون کلاس، سرعت 2 برابر، ماندگاری 3 برابر، پولسازی با ساخت اپلیکیشن و بازی، سه پک زیر جوابت هست:
}
}
در ادامه نیز می توانید محتوای فایل res/layout/activity_main.xml را مشاهده کنید.
<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”
android:orientation=”vertical” >
<Button
android:id=”@+id/buttonCall”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”call 0377778888″ />
</LinearLayout>
در بخش زیر محتوای res/values/strings.xml را برای تعریف دو ثابت جدید مشاهده می کنید:
<?xml version=”1.0″ encoding=”utf-8″?>
<resources>
<string name=”app_name”>My Application</string>
</resources>
بخش زیرین محتوای پیشفرض AndroidManifest.cml را نشان می دهد:
<?xml version=”1.0″ encoding=”utf-8″?>
<manifest xmlns:android=”http://schemas.android.com/apk/res/android”
package=”com.example.saira_000.myapplication” >
<uses-permission android:name=”android.permission.CALL_PHONE” />
<application
android:allowBackup=”true”
android:icon=”@drawable/ic_launcher”
android:label=”@string/app_name”
android:theme=”@style/AppTheme” >
<activity
android:name=”com.example.saira_000.myapplication.MainActivity”
android:label=”@string/app_name” >
<intent-filter>
<action android:name=”android.intent.action.MAIN” />
<category android:name=”android.intent.category.LAUNCHER” />
</intent-filter>
</activity>
</application>
</manifest>
بیایید راه اندازی اپلیکیشن My Application شما را امتحان کنیم. فرض می کنیم که شما موبایل اندروید واقعی تان را به کامپیوترخود وصل نموده اید. برای اجرای اپلیکیشن از استودیو اندروید؛ یکی از فایل های activity پروژه خودتان را باز کنید و روی آیکون اجرا کلیک کنید که در قسمت نوار ابزار قرار گرفته است. دستگاه موبایل خود را به عنوان یک گزینه انتخاب کنید و سپس دستگاه موبایل تان را بررسی کنید که صفحه نمایش زیر را نشان می دهد:
اکنون از دکمه Call استفاده کنید تا همان طور که در زیر می بینید؛ یک تماس تلفنی ایجاد کنید:
چطوری میتونیم ورودی بگیریم و در مکان tel قرار بدیم تا داخل برنامه با هر شماره ای وارد کردیم تماس بگیریم ؟
پاسخبا چه کدی میشه تعداد تماس هارو با عدد ذخیره کنیم به طوری که عدد تماس های قبلی پاک نشن و تا یک مقداری مثل ۴ یا ۵ عدد ذخیره کنیم ؟ برای مثال
تماس ۱
تماس ۲
تماس ۳
تماس ۴
تماس ۵