كيفية التعامل مع broadcast بالاندرويد ستوديو وتنفيذ وظيفة عندما يرن الهاتف
في هذا المقال باذن الله تعالى سوف نشرح لكم كيفية التعامل مع broadcast مع برنامج الاندرويد ستوديو , وقبل كل شيئ هل تعرفون ماهو البرودكاست ؟ ببساطة هو ما يحدث في سلوك التطبيق مثال على ذلك عندما يقوم شخص بالاتصال بك هذا يعد برود كاست اظن ان هذا المثال يوضح لكم الفكرة ببساطة وهذا هو محور درس اليوم عندما يتصل بك شخص سوف نقوم بعمل حدث عندما يرن وعندما ينتهي الاتصال وبين الاتصال .
مجال تطوير تطبيقات الاندرويد او تطوير تطبيقات الموبايل عموما هو اكثر مجال نهتم به في موقعنا ونقدم له شروحات كثيرة جدا وذلك لاهميتة وايضا لانه قد يصبح مصدر دخل بالنسبة لك وقد تبحث عن شركة تطوير تطبيقات الجوال والعمل بها اذا كنت جيد في عملية تطوير تطبيقات الهواتف الذكية او العمل في مواقع الفري لانسر ومجال تطوير تطبيقات الاندرويد كبير وواسع ويجب عليك دائما التطور فيها ولا تثبت عند مستواك الحالي فهنالك دائما تحديثات واضافات جديدة تظهر باستمرار وليس تطوير تطبيقات الاندرويد بل اي مجال له علاقة بالكمبيوتر او البرمجة .
كثير منا يسعى الى تعلم البرمجة وخصوصا تطوير تطبيقات الاندرويد او تطوير المواقع سواء باستخدام الجافا سكريبت او HTML او Php او غيرة فهذين المجالين اكثر المجالات عليها طلب تعلم لاهميتهم وايضا لانك تستطيع تعلمهم بشكل اونلاين ونحن نقدم في موقعنا دورة جافا بسيطة جدا للبدء في هذا المجال وفي الايام المقبلة سوف نحاول ان نقدم شروحات ودروس في برمجة مواقع الويب لانه ايضا مجال مهم جدا ومتوفر له عديد من الدروس على الانترنت بالعربي عكس مجال تطوير تطبيقات الموبايل حيث لا يقتصر جي كودرس على تطوير تطبيقات الهواتف الذكية بل موقعنا يشمل تعلم البرمجة .
خطوات انشاء برودكاست Broadcast في برنامج اندرويد ستوديو
بكل بساطة قم بالتوجه الى package وانقر right click وبعدها اختر other ومنها broadcast receiver الخطوات جميعها في الصورة التالية
الان انتقل على manifest وستجد انه تم اضافة <receiver قم فقط باضافة intent-filter وبينه اكشن يتخصص في حالة الموبايل كما بالصورة وايضا قم بعمل permission بالاعلى وهذا يسمح للتطبيق ب اخذ اذن الاتصال في هاتفك لكي يستطيع تتبع الحالة وقد سبق وشرحنا بيرميشن من قبل .
Manifest.xml
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
الخطوة الثالثة وهي ان تقوم بعمل methode تضع فيها تشغيل permission بمعنى ان هذة الميثود التي بالصورة مسؤوله عن مشاهدة السماحيات التي يتوفر عليها التطبيق واذا كان قد اعطى سماحية للتطبيق للوصول الى الاتصال فلن يطلب منك هذة الوظيفية واذا لم يكن هناك سماحية سوف يطلب منك وهذة الخطوة تكون مره واحده فقط .
MainActivity.class
private void statephone() {
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_DENIED) {
ActivityCompat.requestPermissions(this,new String [] {Manifest.permission.READ_PHONE_STATE},3);
}
}
الخطوة الرابعه وهي الاخيرة وفيها يتم كل شيئ تقريبا , وهي تن تتوجة الى MyReceiver الذي قمت بإنشاءة في اول خطوة وسوف نقوم بعمل String state للTelephonyManager او مدير الهاتف وبعدها EXTRA_STATE للنظر الى حالته بعدها قمنا بعمل if لحالات الموبايل الثلاث وهي في حالة انتهاء المكالمة سوف تخرج رسالة انتهاء المكالمة واثناء المكالمة سوف تظهر رسالة في مكالمة وبعد الاتصال ستظهر الهاتف يرن فقط هذا كل ما في الامر , يمكنك تجربته على هاتفك وجرب ان تتصل من هاتف اخر لترى النتائج , ايضا يمكنك تغيير الطباعة باي وظيفة اخرى تريدها ويمكنك البحث عن استعمالات اخرى للbroadcast وقد تصل الى فكرة وتطورها وتقوم بعمل تطبيق حولها وسوف نوفر لكم باذن الله في الدروس المقبلة شروحات حول هذة القضية .
MyReceiver.class
String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
if (state.equals(TelephonyManager.EXTRA_STATE_IDLE))
Toast.makeText(context, "انتهاء المكامله", Toast.LENGTH_SHORT).show();
else if (state.equals(TelephonyManager.EXTRA_STATE_OFFHOOK))
Toast.makeText(context, "في المكالمه", Toast.LENGTH_SHORT).show();
else if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)) {
Toast.makeText(context, "الهاتف يرن", Toast.LENGTH_SHORT).show();
}
ملخص broadcast في android studio ؟
- اولا : يحتاج منك ان تقوم بعمل broadcast receiver
- ثانينا : تقوم باضافة بعض الاكواد الى Manifest.xml وهي الخاصة بتتبع حالة الموبايل وعمل permission للقراءة من التطبيق
- ثالثا : تقوم بتشغيل وظيفة لتعرف هل المستخدم اعطى سماحيات للتطبيق للوصول الى الاتصال ام لا
- رابعا : يتم كتابة الوظيفة والحالة في كلاس broadcast receiver .