اعلان ها (Notifications) در اندروید

یک اعلان (notification) پیامی است که با هدف آگاه کردن کاربر از یک موضوع در خارج از صفحات برنامه نشان داده می شود.

هنگامی که به سیستم می گوییم یک Notification را صادر کند، ابتدا آن Notification به صورت یک آیکون در ناحیه ی مخصوص آن ها که یک نوار باریک در بالای صفحه است و نوار وضعیت نام دارد ظاهر می شود و برای مشاهده ی جزئیات اعلان نیز کاربر می تواند صفحه ی نوار وضعیت را باز کند. هر دو قسمت نوار وضعیت و صفحه ی جزئیات آن ها توسط سیستم کنترل می شود و کاربر می تواند در هر زمان به آن ها دسترسی داشته باشد.

یکی از راه های مناسب برای نمایش پیام های آگاه کننده استفاده از کلاس Toast می باشد، اما مشکل پیام هایی که با استفاده از این کلاس نمایش داده می شود ناپایدار بودن آن هاست؛ به این معنا که تنها برای چند ثانیه نمایش داده می شوند و پس از آن محو می گردند.

اعلان ها (Notifications) در اندروید

برای دیدن جزئیات بیشتر یک Notification باید صفحه ی نوار وضعیت را باز کنید. برای این منظور لازم است روی نواز وضعیت کلیک کنید و آن را به سمت پایین بکشید که در این حالت مانند تصویر زیر جزئیات اعلان ها نمایش داده می شود. ارتفاع معمولی هر اعلان نیز ۶۴dp می باشد.

Notifications در اندروید

همچنین می توانیم برای نشان دادن جزئیات بیشتر در اعلان ها از ویوهای بزرگ تری استفاده کنیم. اندازه ی یک اعلان به منظور نشان دادن جزئیات بیشتر می تواند به اندازه ی شش خط افزایش پیدا کند.

ساختن یک Notification

با دنبال کردن مراحل زیر می توانید به سادگی برای برنامه ی خود یک Notification بسازید.

گام اول – ایجاد سازنده ی Notification

به عنوان اولین گام در ایجاد سازنده ی Notification باید از متد ()NotificationCompat.Builder.build استفاده کنیم. همچنین برای تعیین ویژگی های مختلف Notification نظیر آیکون های کوچک و بزرگ، عنوان، اولویت و غیره نیز از این تابع سازنده استفاده خواهیم کرد.

گام دوم – تعیین ویژگی های Notification

با استفاده از تابع سازنده می توانیم ویژگی هایی که نیاز داریم را برای Notification تعیین کنیم. با این وجود تعیین ویژگی های زیر برای Notification ضروری است:

• تعیین یک آیکون کوچک با استفاده از متد ()setSmallIcon

• تعیین عنوان با استفاده از متد ()setContentTitle

• تعیین جزئیات متنی با استفاده از متد ()setContentText

ویژگی های زیادی برای اعلان ها وجود دارد که تنظیم کردن بیشتر آن ها نیز اختیاری است؛ در ادامه برخی از آن ها آورده شده است.

گام سوم – افزودن عملیات به Notification

این بخش در ساختن یک اعلان اختیاری است و اگر شما می خواهید این امکان را برای کاربر ایجاد کنید تا با کلیک کردن روی اعلان به منظور مشاهده ی رویداد (های) اطلاع داده شده یا انجام کارهای دیگر به طور مستقیم به یک اکتیویتی از برنامه منتقل شود می توانید یک عملیات را به اعلان اضافه کنید.

عملیات با PendingIntent که حاوی یک Intent است که یک اکتیویتی در برنامه را آغاز می کند تعریف می شود. برای ایجاد ارتباط بین PendingIntent و رویداد ایجاد شده توسط کاربر، متد مناسب برای NotificationCompat.Builder فراخوانده می شود. به عنوان مثال اگر بخواهیم اکتیویتی با کلیک کردن کاربر روی متن اعلان آغاز شود باید PendingIntent را در فراخوانی متد ()setContentIntent قرار دهیم.

شی PendingIntent به عنوان یک نماینده از طرف برنامه ی ما عمل می کند و کمک می کند زمانی که اپلیکیشن در حال اجرا شدن نیست بتوانیم یک عملیات را انجام دهیم.

گام چهارم – نمایش Notification

سرانجام باید شی Notification را با فراخوانی متد ()NotificationManager.notify برای سیستم ارسال کنیم. قبل از ارسال اعلان مطمئن شوید که تابع سازنده ی ()NotificationCompat.Builder.build را فراخوانی کرده اید. این تابع تمام تنظیمات تعیین شده برای اعلان را با آن ترکیب می کند و یک شی Notification جدید را برمی گرداند.

کلاس NotificationCompat.Builder

کلاس NotificationCompat.Builder کنترل پرچم ها را برای ما آسان می کند و همچنین طرح بندی اعلان های معمولی را نیز برای ما امکان پذیر می سازد. در جدول زیر بخشی از متدهای مهم و پر کاربرد این کلاس آورده شده است.

شماره ثابت و توضیحات
۱ ()Notification build

تنظیمات تعیین شده را ترکیب می کند و یک شی Notification جدید را برمی گرداند.

۲ (NotificationCompat.Builder setAutoCancel (boolean autoCancel

تنظیم این پرچم باعث می شود به طور خودکار با کلیک کردن کاربر روی اعلان، اعلان محو شود.

۳ (NotificationCompat.Builder setContent (RemoteViews views

به جای ویوی استاندارد اعلان، از RemoteViews ارسالی استفاده خواهد شد.

۴ (NotificationCompat.Builder setContentInfo (CharSequence info

متن سمت راست داخل اعلان را تنظیم می کند. چنانچه متد ()setStyle نیز برای اعلان تنظیم شود سیستم این متد را نادیده می گیرد.

۵ (setContentIntent (PendingIntent intent

PendingIntentی که با کلیک کردن روی اعلان باید ارسال شود را تعیین می کند.

۶ (NotificationCompat.Builder setContentText (CharSequence text

یک متن را برای توضیح در زیر عنوان تعیین می کند. این متن تنها به اندازه ی یک سطر نمایش داده می شود و چنانچه متد ()setStyle نیز برای اعلان تنظیم شود سیستم این متد را نادیده می گیرد.

۷ (NotificationCompat.Builder setContentTitle (CharSequence title

عنوان اعلان را تعیین می کند.

۸ (NotificationCompat.Builder setDefaults (int defaults

تنظیمات پیش فرضی که مورد نظر ما است را برای اعلان تعیین می کند.

۹ (NotificationCompat.Builder setTicker (CharSequence tickerText

متن تنظیم شده توسط این متد همراه با تصویری که متد زیر تعیین می کند در لحظه ی اتفاق افتادن اعلان برای چند لحظه در تمام محدوده ی نوار وضعیت نشان داده می شوند.

۱۰ (NotificationCompat.Builder setLargeIcon (Bitmap icon

این متد باید با یک تصویر با فرمت بیت مپ مقدار دهی شود. آیتم تنظیم شده توسط این متد همراه با متنی که متد بالا تعیین می کند در لحظه ی اتفاق افتادن اعلان برای چند لحظه در تمام محدوده ی نوار وضعیت نشان داده می شوند.

۱۱ (NotificationCompat.Builder setNumber (int number

یک عدد را برای نمایش در سمت راست داخل اعلان تعیین می کند. تعیین متد های ()setContentInfo یا ()setStyle مانع از نمایش این عدد می شوند.

۱۲ (NotificationCompat.Builder setSound(Uri sound

یک صوت را برای اعلان تعیین می کند.

۱۳ (NotificationCompat.Builder setSmallIcon (int icon

آیکون اعلان را تنظیم می کند.

۱۴ (setStyle (NotificationCompat.Style style

این متد یک سبک غنی که توسط برنامه نویس طراحی شده است را برای اعلان تعیین می کند.

۱۵ (NotificationCompat.Builder setVibrate (long[] pattern

یک الگو را برای لرزیدن دستگاه تعیین می کند.

۱۶ (NotificationCompat.Builder setWhen (long when

این متد زمانی که در اعلان نمایش داده می شود را تعیین می کند. اگر مقدار این متد “۰” تعیین شود هیچ زمانی نمایش داده نخواهد شد. همچنین می توانید از این متد استفاده نکنید که در این صورت زمان ایجاد اعلان در آن نمایش داده خواهد شد.

۱۷ (addAction(int icon, CharSequence title, PendingIntent intent

یک عملیات را به اعلان اضافه می کند.

 

مثال

این مثال در چند مرحله ی ساده نحوه ی استفاده از اعلان ها را نشان می دهد. برای این منظور مراحل جدول زیر را دنبال کنید.

مرحله توضیحات
۱ با استفاده از اندروید استودیو یک پروژه ی جدید با نام Notifications تحت بسته ی com.example.notifications ایجاد کنید. نحوه ی ایجاد پروژه ی جدید در بخش  ساخت اولین پروژه در اندروید استودیو توضیح داده شده است.
۲ ثابت های رشته ای مورد نیاز را مانند آنچه در ادامه آمده است در فایل res/values/strings.xml تعریف کنید.
۳ فایل res/layout/notification.xml را ایجاد کنید و محتوایی را که در ادامه آمده است را به آن منتقل کنید. هنگامی که کاربر روی اعلان کلیک کند به این صفحه منتقل می شود.
۴ محتوای فایل res/layout/activity_main.xml را مانند آنچه در ادامه آمده است تغییر دهید.
۵ فایل java/com.example.datepicker/NotificationView.java را ایجاد کنید و محتوایی که در ادامه آمده است را در آن وارد کنید. هنگامی که کاربر روی اعلان کلیک کند این اکتیویتی اجرا خواهد شد.
۶ محتوای فایل java/com.example.datepicker/MainActivity.java را نیز به منظور ایجاد یک اعلان مانند آنچه در ادامه آمده است تغییر دهید.
۷ محتوای فایل AndroidManifest.xml را نیز به منظور ثبت اکتیویتی جدید مانند آنچه در ادامه آمده است تغییر دهید.
۸ برنامه را با استفاده از شبیه ساز اندروید اجرا کنید و نتیجه را مورد بررسی قرار دهید.

در زیر محتوای فایل res/values/strings.xml آورده شده است.

در زیر محتوای فایل res/layout/notification.xml آورده شده است.

محتوای زیر مربوط به فایل res/layout/activity_main.xml می باشد.

در زیر محتوای فایل java/com.example.datepicker/NotificationView.java آورده شده است. هنگامی که کاربر روی اعلان کلیک کند این اکتیویتی اجرا خواهد شد.

در زیر محتوای فایل java/com.example.datepicker/MainActivity.java آورده شده است.

و در نهایت محتوای زیر مربوط به فایل AndroidManifest.xml می باشد.

حال نوبت آن رسیده تا با استفاده از اندروید استودیو برنامه را اجرا کنیم. برای این منظور روی آیکون Run که در نوار ابزار قرار دارد کلیک کنید.اگر همه چیز بدون مشکل پیش برود پنجره ی شبیه ساز شما مانند تصویر زیر خواهد بود.

اعلان در اندروید

حال اگر روی دکمه ی ایجاد اعلان کلیک کنید یک اعلان ایجاد می شود و اگر نوار وضعیت را باز کنید جزئیات اعلان مانند تصویر زیر خواهد بود.

 

ایجاد اعلان اندروید

 

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *