نحوه برقراری تماس تلفنی در اندروید

سلام به ITPROهای عزیز. به خاطر این که اکثر دستگاه های اندرویدی از سیم کارت پشتیبانی می کنند و قابلیت تماس دارند اندروید کتابخانه های مفید و پراستفاده ای را برای کار با تماس در اختیار برنامه نویسان قرار داده است. همچنین اندروید یک برنامه داخلی برای انجام تماس ها دارد. با توجه به این که ممکن است در برنامه هایی که در اندروید می نویسیم نیاز به تماس صوتی و تماس تلفنی داشته باشیم پس در این مطلب در مورد تماس گرفتن در اندروید صحبت می کنیم. برای تماس تلفنی می توانیم از intent های ضمنی تماس و ورودی ها و اکشن های مناسب استفاده کرد. همچنین راه دیگر تماس استفاده از تماس تلفنی استفاده از کلاس های PhoneStateListener و TelephonyManager استفاده کنیم. این کلاس ها برای نظارت بر تماس ها و تغییرات هنگام تماس در دستگاه استفاده می شود. در ادامه این روش ها را توضیح می دهیم و می گوییم که با هر کدام به چه شکل کار می کنیم.

استفاده از intentهای ضمنی

در مطالب قبل نحوه ی کار با intent ها را توضیح داده ایم. و گفته ایم که برای این که از یک activity به اکتیویتی دیگری منتقل شویم از intent ها استفاده می کنیم. همچنین گفتیم که برای انتقال به اکتیویتیهای مخصوص مانند ارسال و پیامک و تماس هم از intent ها استفاده می کنیم. اکشنی که برای کار با intent ها به کار می رود و برای تماس استفاده می شود ACTION_CALL می باشد. این اکشن اکتیویتی مربوط به تماس را لود می کند. برای ساخت این intent از کد زیر استفاده می شود.

Intent phoneIntent = new Intent(Intent.ACTION_CALL);

در کد بالا یک شماره به intent پاس داده می شود که در صورت استارت کردن اکتیویتی شماره مورد نظر توسط دستگاه شماره گیری می شود. حال در کد بالا می توان به جای اکشن ACTIONCALL از اکشن ACTIONDIAL استفاده کرد. در این صورت به جای این که مستقیم شماره گیری شود قسمت شماره گیری دستگاه ظاهر می شود و شماره را نیز در صفحه شماره گیری نشان می دهد. حال اگر کاربر قصد داشته باشد که شماره را تغییر بدهد می تواند این کار را به راحتی انجام بدهد. زیرا که هنوز شماره گرفته نشده و فقط صفحه شماره گیری ظاهر شده و شماره گرفته شده است. حال نحوه شماره گیری و مقداردهی به intent هم مهم است. برای مقداردهی شماره به intent باید از متد setData استفاده کنیم و ورودی آن را در قالب یک URI می باشد. نحوه آدرس دهی این URI به شکل زیر است.

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

در کد بالا شماره تلفن باید جلوی کلمه tel آمده باشد. برای این که قسمت تماس گرفتن شروع به کار کند باید از متد زیر استفاده شود

startActivity(phoneIntent);

-

مثالی از برقراری تماس تلفنی در اندروید

-

برای این که یک مثال از برقراری تماس تلفنی بزنیم یک پروژه جدید اندرویدی می سازیم و مشخصات آن را به شکل زیر مشخص می کنیم. ابتدا در اکتیویتی main یک دکمه قرار می دهیم. مانند کد زیر

<?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 09121234567" />

</LinearLayout>

حال باید در قسمت androidManifest.xml باید مجوز تماس تلفنی را دریافت کنیم. به همین دلیل خط کد زیر را در این فایل بنویسیم.

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

حال باید در کد جاوای اکتیویتی کد زیر را بنویسید.

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:۰۹۱۲۱۲۳۴۵۶۷"));
                                
            if (ActivityCompat.checkSelfPermission(MainActivity.this,
               Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
                  return;
               }
               startActivity(callIntent);
         }
      });

   }
}

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

نویسنده: مهدی عادلی فر

منبع: Itpro

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد.

#intentها_در_اندروید #آموزش_گام_به_گام_اندروید #مجوز_های_تماس_در_اندروید #تماس_تلفنی_در_اندروید #شماره_گیری_در_اندروید #intentهای_ضمنی_اندروید #آموزش_برنامه_نویسی_اندروید #تماس_تلفنی_با_intent
2 نظر
hamideh smi

با سلام اینکه گفته میشه با زبان های برنامه نویسی c# و c++ و جاوا میشه اندروید رو توسعه داد یعنی نسخه سیستم عامل اندروید ؟؟یا منظورشون اپلیکیشن های اندرویدی هست؟؟؟

مهدی عادلی فر

سلام برای توسعه سیستم عامل اندروید به دلیل این که این سیستم عامل یک نسخه از لینوکس است شما تنها با استفاده از زبان سی و سی پلاس پلاس قادر خواهید بود خود سیستم عامل را توسعه و تغییر بدهید ولی برای توسعه اپلیکیشن در اندروید شما می تونید از زبان های سی شارپ و سی پلاس پلاس و جاوا و حتی html , js با هم استفاده کنید.

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....