آموزش :: نحوه برقراری تماس تلفنی در اندروید
درخواست های ارتباط
جستجو
لیست دوستان من
صندوق پیام
همه را دیدم
  • در حال دریافت لیست پیام ها
صندوق پیام
رویدادها
همه را دیدم
  • در حال دریافت لیست رویدادها
همه رویدادهای من
تخفیف های وب سایت
همه تخفیف ها

عضویت در

کانال تلگرام

توسینسو

اطلاعات مطلب
مدرس/نویسنده
مهدی عادلی فر
امتیاز: 152684
رتبه:5
140
197
294
1521
مهدی عادلی، بنیان گذار TOSINSO. کارشناس ارشد نرم افزار کامپیوتر از دانشگاه صنعتی امیرکبیر و #C و جاوا و اندروید کار می کنم. در زمینه های موبایل و وب و ویندوز فعالیت دارم و به طراحی نرم افزار و اصول مهندسی نرم افزار علاقه مندم. پروفایل کاربر

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

تاریخ 20 ماه قبل
نظرات 2
بازدیدها 364
سلام به 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
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد.
برچسب ها
مطالب مرتبط

در حال دریافت اطلاعات

نظرات
  • با سلام اینکه گفته میشه با زبان های برنامه نویسی c# و c++ و جاوا میشه اندروید رو توسعه داد یعنی نسخه سیستم عامل اندروید ؟؟یا منظورشون اپلیکیشن های اندرویدی هست؟؟؟
  • سلام برای توسعه سیستم عامل اندروید به دلیل این که این سیستم عامل یک نسخه از لینوکس است شما تنها با استفاده از زبان سی و سی پلاس پلاس قادر خواهید بود خود سیستم عامل را توسعه و تغییر بدهید ولی برای توسعه اپلیکیشن در اندروید شما می تونید از زبان های سی شارپ و سی پلاس پلاس و جاوا و حتی html , js با هم استفاده کنید.

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