برقراری تماس در اندروید - برنامه نویسی اندروید

اندروید برنامه های داخلی را برای مدیریت تماس های تلفنی ارائه می دهد، در برخی مواقع ممکن است لازم باشد از طریق برنامه خود اقدام به برقراری تماس کنیم. این را می توان به راحتی با استفاده از Intent ضمنی با اقدامات مناسب انجام داد. همچنین می‌توانیم از کلاس‌های PhoneStateListener و TelephonyManager برای نظارت بر تغییرات برخی از حالت‌های تلفن در دستگاه استفاده کنیم.

این آموزش تمام مراحل ساده برای ایجاد یک برنامه کاربردی که می تواند برای برقراری تماس تلفنی استفاده شود را فهرست می کند. می‌توانید از Android Intent برای برقراری تماس تلفنی با تماس با قابلیت تماس تلفنی داخلی اندروید استفاده کنید. بخش زیر بخش‌های مختلف شی Intent مورد نیاز برای برقراری تماس را توضیح می‌دهد.

آبجکت Intent – اکشن برای برقراری تماس تلفنی

از عملکرد ACTION_CALL برای فعال کردن قابلیت تماس تلفنی داخلی موجود در دستگاه Android استفاده میشود. در ادامه یک نحو ساده برای ایجاد یک intent با عمل ACTION_CALL را آورده ایم:

Intent phoneIntent = new Intent(Intent.ACTION_CALL);

می‌توانید به جای ACTION_CALL از ACTION_DIAL استفاده کنید، در این صورت می‌توانید به جای برقراری تماس مستقیم، قبل از برقراری تماس، شماره تلفن کدگذاری شده را تغییر بدهید.

آبجکت Intent – نوع/داده برقراری تماس

برای برقراری تماس تلفنی با شماره معین 989140000000، باید tel: را به عنوان URI با استفاده از متد setData() به صورت زیر مشخص کنید:

phoneIntent.setData(Uri.parse("tel:989140000000"));

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

مثال

مثال زیر بطور عملی به شما نشان می دهد که چگونه از Android Intent برای برقراری تماس تلفنی با شماره موبایل داده شده استفاده کنید.

مراحل و توضیحات ردیف
در AndroidStudio یک پروژه جدید با پکیج نیم جدید ایجاد کنید و مراحل زیر را دنبال کنید. 1
کدهای درون فایل MainActivity.class را مطابق کدهای که در پایین وجود دارد تغییر بدهید. 2
کدهای درون فایل activity_main.xml را مطابق کدهای که در پایین وجود دارد تغییر بدهید. 3
مجوزهای لازم را در فایل AndroidManifest.xml اضافه کنید. 4
برنامه را بر روی یک تلفن واقعی یا شبیه ساز اجرا کنید و تست را انجام بدهید. 5

کدهای فایل MainActivity.java

package com.example.test12a;

import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

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

        findViewById(R.id.buttonCall).setOnClickListener(arg0 -> {
            Intent callIntent = new Intent(Intent.ACTION_CALL);
            callIntent.setData(Uri.parse("tel:9140000000"));

            if (ActivityCompat.checkSelfPermission(MainActivity.this,
                    Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
                return;
            }
            startActivity(callIntent);
        });
    }

}

کدهای فایل activity_main.xml

<?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:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="32dp"
    tools:context="MainActivity">

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:text="مثال برقراری تماس"
        android:textSize="30sp" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView1"
        android:gravity="center"
        android:text="7cloner.com"
        android:textColor="#3F51B5"
        android:textSize="30sp" />


    <Button
        android:id="@+id/buttonCall"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/textView2"
        android:layout_marginTop="16dp"
        android:text="تماس با 9140000000" />

</RelativeLayout>

فایل AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.example.test12a" >

    <uses-permission android:name="android.permission.CALL_PHONE"/>

    <application
        android:allowBackup="true"
        android:dataExtractionRules="@xml/data_extraction_rules"
        android:fullBackupContent="@xml/backup_rules"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.Test12A"
        tools:targetApi="31" >

        <activity
            android:name=".MainActivity"
            android:exported="true" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

بعد از اجرای برنامه میتوانید نتیجه را ببینید و سرآخر نتیجه به این صورت خواهد بود:

برقراری تماس در اندرویدبرقراری تماس در اندروید

دیدگاه‌ها و پرسش‌ها

برای ارسال نظر نیاز است تا ابتدا وارد سایت شوید.

هیچ نظری ارسال نشده است.

قیمت آموزش
رایگان
نوع دسترسی
رایگان

این مقاله در حال حاضر تنها به روش رایگان در دسترس می باشد.

ناصر خالدی
مدرس دوره

ناصر خالدی

مهندس شبکه, امنیت, برنامه نویسی تلفن های هوشمند, طراح وب سایت و متخصص هوش مصنوعی

گفتگوی برنامه نویسان

بخشی برای حل مشکلات برنامه‌نویسی و مباحث پیرامون آن

دوره های پیشنهادی

مقالات پیشنهادی

هک و امنیت

در تعریف کلی این واژه می توان گفت که به پیدا کردن راه های نفوذ به یک حریم شخصی و استفاده غیر مجاز از آن را هک می نامیم. هدف از هک می تواند ...


۹۵۵
۰
۱۳ آذر ۱۳۹۹

بک لینک چیست؟

بک لینک (Back Link) به لینک دادن یک سایت به سایت دیگر گفته میشود که یک فاکتور مهم و اساسی در سئو هر سایتی می باشد.


۹۹۰
۰
۲۲ آذر ۱۳۹۹

اندروید

اندروید یک سیستم عامل می باشد که توسط گوگل توسعه داده میشود, این سیستم عامل بر پایه نسخه ی اصلاح شده ی هسته ی لینوکس و دیگر نرم افزار های متن باز طراحی شده است و ...


۱۰۵۴
۰
۲۹ آبان ۱۳۹۹

جاوا اسکریپت

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


۸۶۷
۰
۱۳ آذر ۱۳۹۹

Fatal error: Uncaught wfWAFStorageFileException: Unable to verify temporary file contents for atomic writing. in /home/clonerco/public_html/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/storage/file.php:52 Stack trace: #0 /home/clonerco/public_html/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/storage/file.php(659): wfWAFStorageFile::atomicFilePutContents('/home/clonerco/...', '<?php exit('Acc...') #1 [internal function]: wfWAFStorageFile->saveConfig('livewaf') #2 {main} thrown in /home/clonerco/public_html/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/storage/file.php on line 52