Broadcast receiver أحد أهم عناصر تطبيق الأندرويد وكيفية استخدامه

بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاته .

كلامنا اليوم عن Broadcast receiver وهو أحد اهم عناصر تطبيق الأندرويد ويستخدم بكثرة في التطبيقات الحديثة والضخمة .

و Broadcast receiver هو مستقبل للبث يقوم بتنفيذ عمل أنت تحدده عند وقوع حدث ما , فمثلا عند ( توصيل الشحن , فصل الشحن , بدء تشغيل الجهاز , …… ) أن يتم عرض رسالة Toast أو بدء منبه أو إرسال رسالة sms أو القيام باتصال أو الخ …


أولا يجب إنشاء ال Broadcast receiver عبر الضغط بنقرة يمنى على مجلد المشروع ومن ثم الضغط على New ثم Other ثم Broadcast Receiver , فيتم إنشاؤه ككلاس جافا يرث BroadcastReceiver ويحوي دالة واحد هي onReceive التي نكتب فيها الكود الذي نريد تنفيذه عند استلام الحدث , شكل الكلاس بشكل عام :

package com.dev.ms.test;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class Catcher extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        //Your code
    }
}
  • هنا لدينا BroadcastReceiver أسميناه Catcher .

عند إنشاء بالطريقة التي ذكرت في الأعلى فإنه سيتم تعريفه تلفائيا في AndroidManifest.xml أما عند إنشائه بالطريقة الصعبة بإنشاء كلاس جافا و جعله يرث BroadcastReceiver فإنه يتوجب عليك تعريفه في AndroidManifest.xml .

يمكنك إرسال إشارة للمستقبل بشكل عام بالكود فينفذ ما في داخل onReceive :

Intent broadcast = new Intent(this,Catcher.class);
sendBroadcast(broadcast);
  •  قمنا بتعريف Intent عادي مع وضع المستقبل ضمن الطرف الثاني .
  • دالة sendBroadcast لإرسال البث وهي بدل وضع startActivity عند الانتقال لاكتيفيتي أخرى .

والآن سنتحدث عن مثال لكيفية استقبال بث لحدث بدء تشغيل الجهاز :

أولا : سنضيف هذه الصلاحية في AndroidManifest.xml للتمكن من العمل عند بدء تشغيل الجهاز .

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

ثانيا : بما انه عند بدء التشغيل سيبث امر وهو عبارة عن اكشن فلا بد من وضع نفس الأكشن في ملف أندرويد مانيفست لل BroadcastReceiver للتمكن من استقبال البث وال action هو :

<action android:name="android.intent.action.BOOT_COMPLETED" />

ثالثا : سنضع toast في دالة onReceive وليكن يحمل رسالة “بدء التشغيل”.

ونجرب إعادة التشغيل او حتى الدخول إلى وضع توفير الطاقة ثم الخروج منه ، ونستطيع أيضا ان نضع الاكشن وصل الطاقة أو حتى فصلها ولا ننسى ان في بعض الحالات سنضطر لإضافة الصلاحيات في ملف AndroidManifest.xml .

المثال كاملا :

  • ملف AndroidManifest.xml :
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.dev.ms.test">

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

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme">
        <activity
            android:name=".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>

        <receiver
            android:name=".Catcher"
            android:enabled="true"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
            </intent-filter>
        </receiver>


    </application>

</manifest>
  • ملف ال BroadcastReceiver :
package com.dev.ms.test;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;

public class Catcher extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context, "بدء التشغيل", Toast.LENGTH_SHORT).show();
    }
}

 

ملاحظة : أحد أكثر استخدامات ال Broadcast Receiver ياتي في ال Alarms والتي سنتطرق لطرق متقدمة فيها في تدوينات قادمة .

أتمنى أن تنال إعجابكم ، دمتم في رعاية الله .

السلام عليكم ورحمة الله وبركاته .

About مساهم

Check Also

تعلم برمجة تطبيق اندرويد لمدونتك البلوجر (3)

نكمل معاً الدرس الثالث في تعلم برمجة وتطوير تطبيق اندرويد لموقعك الإلكتروني من خلال جلب الخلاصات RSS المثال الذي نعمل عليه لبرمجة تطبيقك لمدونتك البلوجر

التقنيات التي نستطيع برمجة تطبيقات والعاب الاندرويد بها

هل أنت محتار من أين تريد البدأ في مجال برمجة التطبيقات للهواتف الذكية أو الألعاب عالية الاداء ؟ تعرف في هذا المقال عن اللغات والتقنيات واختر منها ما يناسبك لدخول هذا المجال

عرض صورة في التطبيق من فايربيس

بسم الله الرحمن الرحيم اليوم سيكون شرحنا عن كيفية عرض صورة  في التطبيق من قاعدة …

ضع بصمتك بتعليق يعبر عن امتنانك

هذا الموقع يستخدم Akismet للحدّ من التعليقات المزعجة والغير مرغوبة. تعرّف على كيفية معالجة بيانات تعليقك.