Android Notifications

 

الإشعارات هي جزء من واجهة المستخدم لكنها تظهر خارج التطبيق لإعلام المستخدم بحدث معين، مما يُمكّن المستخدم من عرضه والتفاعل معه بينما يستخدم تطبيقًا آخر. ويحتوي الإشعار على رسالة مختصرة عن هذا الحدث.

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

 

هناك عدة خطوات لصنع الإشعارات من داخل تطبيقك :

صنع كائن البناء الخاص بالإشعار من الصنف Notification.Builder

Notification.Builder mBuilder = new Notification.Builder(this);

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

 

بعد الحصول على كائن البناء نبدأ في التحكم في خصائص الإشعار، وهناك بعض الخصائص الأساسية اللازم توافرها في الإشعار وهي:

  • الأيقونة الخاصة بالإشعار.
  • عنوان الإشعار.
  • المحتوى الخاص بالإشعار.

 

;(mBuilder.setSmallIcon(R.drawable.msg_icon

;(“mBuilder.setContentTitle(“New Message

;(“mBuilder.setContentText(“Hi, This is the message text

ويوجد العديد من الخصائص الأخرى التي يمكنك استخدامها حسب حاجة التطبيق لها.

بناء الإشعار بالخصائص السابقة

يتم ذلك باستدعاء التابع ()build والحصول على كائن من Notification.

;()Notification notif = mBuilder.build

إظهار الإشعار في درج الإشعارات

يوفر أندرويد الصنف  NotificationManager لإدارة الإشعارات من حيث إصدار الإشعار، تعديل الإشعار بعد إصداره أو إلغاء الإشعار برمجيًا. لذا يجب أولًا الحصول على كائن من هذا الصنف وذلك عن طريق استدعاء الدالة ()getSystemService وتمرير الثابت NOTIFICATION_SERVICE والذي يعني طلب الخدمات الخاصة بالإشعارات من خدمات النظام. وسيتم استخدام الدالة()getSystemService كثيرًا عند الحاجة لطلب خدمات من النظام.

;(NotificationManager notifyMngr = (NotificationManager) getSystemService(NOTIFICATION_SERVICE

بعد ذلك نستدعي التابع ()notify باستخدام الكائن من NotificationManager ليظهر الإشعار في الحال، وتمرير رقم مميز له يُعبر عن الإشعار ليُستخدم هذا الرقم فيما بعد للتعديل على الإشعار أو إلغائه، كما يتم تمرير الإشعار الذي تم بنائه من قبل.

;int notificationId = 103
;(notifyMngr.notify(notificationId, notif

نقوم بعمل تطبيق بسيط واجهة تحتوي على زر عند الضغط عليه يظهر اشعار notification  كما في الشكل التالي :

في دالة ال Button نضع الكود التالي :

Step 1
;(Notification.Builder mBuilder = new Notification.Builder(MainActivity.this
Step 2
;(mBuilder.setSmallIcon(R.drawable.ic_message
;(“mBuilder.setContentTitle(“New Message
;(“mBuilder.setContentText(=”Hi, This is the message text
Step 3
;()Notification notif = mBuilder.build
Step 4
;(NotificationManager notifyMngr = (NotificationManager) getSystemService(NOTIFICATION_SERVICE
;int notificationId = 103
;(notifyMngr.notify(notificationId,notif