با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . و کاربرانی که دوره کامل آموزش برنامه نویسی اندروید را دنبال می کنند. آندروید برنامه های ساخته شده برای تماس های تلفنی را فراهم می کند، در بعضی موارد ممکن است که شما نیاز به برقراری تماس تلفنی از طریق برنامه ای که ایجاد کرده اید داشته باشید. این می تواند به راحتی با استفاده از implicit Intent با اقدامات مناسب انجام شود. همچنین، ما می توانیم از کلاس PhoneStateListener و TelephonyManager استفاده کنیم تا مانع تغییرات برخی از وضعیت های تلفن در دستگاه شویم. در ادامه ی مباحث این بخش برای آشنایی با چگونگی استفاده از تماس های تلفنی در اندروید با ما همراه باشید.
در ادامه این آموزش برای آشنایی شما با استفاده از تماس های تلفنی در اندروید مراحل ساده ی پیاده سازی آن را شرح داده ایم.
شما می توانید با استفاده از تعریف عمل ACTION_CALL به شیوه ی زیر قابلیت تماس تلفنی را فعال کنید:
1 | Intent phoneIntent = new Intent(Intent.ACTION_CALL); |
شما می توانید از قابلیت ACTION_DIAL به جای ACTION_CALL استفاده کنید.
در این صورت باید قبل از برقراری تماس شماره تلفن سخت افزاری را تغییر دهید.
برای برقراری تماس تلفنی با یک شماره مشخص ۹۱-۰۰۰-۰۰۰-۰۰۰۰، شما باید از طریق استفاده از متد () setData به عنوان مثال: tel: as URI را مشخص کنید:
1 | phoneIntent.setData(Uri.parse("tel:91-000-000-0000")); |
برای برقراری تماس نیازی به مشخص کرده نوع داده و یا هر نوع اطلاعات اضافی ندارید.
مثال زیر به شما نحوه استفاده از Android Intent را برای برقراری تماس تلفنی به شماره تلفن همراه مشخص شده ارائه می دهد:
برای تست این مثال شما نیاز به دستگاه اندروید واقعی دارید چراکه ممکن است شبیه ساز اندروید به خوبی کار نکند.
مراحل | توضیحات |
---|---|
۱ | مراحل ایجاد برنامه در اندروید استدیو را طبق بخش های قبلی دنبال کرده و نام پکیج را com.pvlearn.myapplication قرار بدهید. |
۲ | به محتوای فایل src/MainActivity.java کدهای مورد نیاز برای تماس تلفنی را اضافه کنید. |
۳ | به محتوای فایل res / layout / activity_main.xml یک دکمه ی ساده را برای برقراری تماس با ۹۱-۰۰۰-۰۰۰-۰۰۰۰ اضافه کنید. |
۴ | ثابت های رشته ای را بدون تغییر رها کنید. |
۵ | محتوای فایل AndroidManifest.xml را همانطور که در ادامه اشاره شده تغییر دهید. |
۶ | برنامه را اجرا کنید تا شبیه ساز اندروید نتیجه را نمایش دهد. |
محتوای فایل main activity را که در مسیر src/MainActivity.java قرار دارد را تغییر دهید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | package com.example.Pvlearn.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); } }); } } |
محتوای فایل res/layout/activity_main.xml بصورت زیر خواهد بود:
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?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 بصورت زیر خواهد بود:
1 2 3 4 | <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">My Application</string> </resources> |
محتوای پیش فرض فایل AndroidManifest.xml بصورت زیر خواهد بود:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <?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> |
برای اجرای برنامه ی اندرویدی خود یکی از فایل های activity در برنامه ی خود کلیک کنید.
سپس روی نماد (Run) از نوار ابزار برای شروع اجرای برنامه کلیک کنید.
دستگاه موبایل خود را برای تست برنامه انتخاب کرده و نتیجه را بصورت زیر مشاهده خواهید کرد:
اکنون روی دکمه ی Call برای برقراری تماس کلیک کنید تا نتیجه زیر را مشاهده کنید:
همانطور که گاهی بر حسب نیاز برنامه ی کاربردی که در اندروید ایجاد می کنید ممکن است که به قابلیت ارسال اس ام اس نیاز پیدا کنید. گاهی ممکن است نیاز به پیاده سازی قابلیت برقراری تماس در برنامه ی اندروید ی خود پیدا کنید، برای این منظور مباحث این بخش را به آشنایی به تماس های تلفنی در اندروید اختصاص دادیم.