درخواست های ارتباط
جستجو
لیست دوستان من
صندوق پیام
همه را دیدم
  • در حال دریافت لیست پیام ها
صندوق پیام
رویدادها
همه را دیدم
  • در حال دریافت لیست رویدادها
همه رویدادهای من
دوره های مرتبط
دوره آموزشی برنامه نویسی اندروید با زبان جاوا به زبان ساده
مدرس: مهدی عادلی
این دوره را در 27 قسط خریداری کنید
دوره آموزشی برنامه نویسی به زبان پرل بصورت پروژه محور
مدرس: dr-iman
این دوره را در 13 قسط خریداری کنید
دوره آموزشی برنامه نویسی WPF در ویژوال استودیو
مدرس: Amirhossein Fazlikhani
این دوره را در 12 قسط خریداری کنید
دوره آموزشی برنامه نویسی پیشرفته زبان سی شارپ
مدرس: حسین احمدی
این دوره را در 78 قسط خریداری کنید
دوره آموزشی Exploit نویسی به زبان Perl
مدرس: dr-iman
این دوره را در 7 قسط خریداری کنید
دوره تخصصی آموزش متن کاوی با ابزار NLTK
مدرس: taghandiki
این دوره را در 11 قسط خریداری کنید
دوره آموزشی برنامه نویسی حرفه ای پایتون به زبان ساده
مدرس: حسین احمدی
این دوره را در 23 قسط خریداری کنید
ساخت و مدیریت ربات تلگرام از صفر با زبان سی شارپ
مدرس: مهدی عادلی
این دوره را در 2 قسط خریداری کنید
دوره آموزشی پردازش متن با زبان برنامه نویسی پایتون
مدرس: taghandiki
این دوره را در 20 قسط خریداری کنید
دوره آموزشی مقدماتی برنامه نویسی جاوا به زبان ساده
مدرس: مهدی عادلی
این دوره را در 17 قسط خریداری کنید

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

2 نظرات
90 بازدیدها
سلام به 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 با هم استفاده کنید.

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

arrow