نوتیفیکیشن پیامی است که می توانید خارج از رابط کاربری عادی برنامه خود به کاربر نمایش دهید. وقتی به سیستم میگویید نوتیفیکیشن ارسال کند، ابتدا به عنوان یک نماد در قسمت اعلان ظاهر میشود. برای مشاهده جزئیات نوتیفیکیشن، کاربر کشوی اعلان را باز می کند. هر دو ناحیه اعلان و کشوی نوتیفیکیشن، مناطقی هستند که توسط سیستم کنترل می شود که کاربر می تواند در هر زمانی آنها را مشاهده کند.
کلاس Toast در اندروید یک راه مفید برای نشان دادن هشدارها به کاربران ارائه می دهد، اما مشکل این است که این هشدارها پایدار نیستند، به این معنی که هشدار برای چند ثانیه روی صفحه چشمک می زند و سپس ناپدید می شود. برای مشاهده جزئیات نوتیفیکیشن، باید نمادی را انتخاب کنید که کشوی اعلان را با جزئیات مربوط به اعلان نمایش می دهد. هنگام کار با شبیه ساز با دستگاه مجازی، باید روی نوار وضعیت کلیک کرده و آن را به سمت پایین بکشید تا آن را کامل باز کنید. بعد از باز کردن کامل, جزئیات را به شکل زیر به شما ارائه می دهد:
صفحه باز شده بالا میتواند نمای بزرگی داشته باشد که جزئیات بیشتری در مورد نوتیفیکیشن دارد. می توانید حداکثر شش خط دیگر را در نوتیفیکیشن اضافه کنید.
ایجاد و ارسال نوتیفیکیشن ها
شما راه ساده ای برای ایجاد نوتیفیکیشن دارید. برای ایجاد نوتیفیکیشن مراحل زیر را دنبال کنید و آنها را در پروژه خود پیاده کنید:
مرحله 1 – Notification Builder را ایجاد کنید
اولین گام این است که با استفاده از NotificationCompat.Builder.build یک نوتیفیکیشن ساز ایجاد کنید. از Notification Builder برای تنظیم ویژگی های مختلف Notification مانند نمادهای کوچک و بزرگ، عنوان، اولویت و غیره استفاده خواهید کرد.
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
مرحله 2 – تنظیم ویژگی های نوتیفیکیشن
هنگامی که شی Builder را دارید، می توانید ویژگی های Notification آن را با استفاده از شی Builder مطابق با نیاز خود تنظیم کنید و از آن استفاده کنید. در پایین 3 مورد ضرور که باید تنظیم شوند را آورده ایم:
- تنظیم آیکن کوچک با استفاده از متد setSmallIcon()
- نمایش عنوان با استفاده از متد setContentTitle()
- متن جزییات با استفاده از متد setContentText() تنظیم میشود
mBuilder.setSmallIcon(R.drawable.notification_icon); mBuilder.setContentTitle("هشدار نوتیفیکیشن, کلیک کنید"); mBuilder.setContentText("سلام, این یک متن جزییات برای نوتیفیکیشن در اندروید میباشد, تیم سِون کلونر");
شما ویژگی های اختیاری زیادی دارید که می توانید برای نوتیفیکیشن خود تنظیم کنید. برای کسب اطلاعات بیشتر در مورد آنها، به مستندات مرجع برای NotificationCompat.Builder مراجعه کنید.
مرحله 3 – Actions را پیوست کنید
این یک بخش اختیاری است و اگر میخواهید عملی را به نوتیفیکیشن پیوست کنید میتوانید از آن استفاده کنید. یک عمل به کاربران امکان میدهد مستقیماً از نوتیفیکیشن به یک Activity در برنامه شما بروند، جایی که میتوانند یک یا چند رویداد را مشاهده کنند یا کارهای بیشتری انجام دهند.
این عمل توسط یک PendingIntent حاوی یک Intent تعریف می شود که یک Activity را در برنامه شما شروع می کند. برای مرتبط کردن PendingIntent با یک حرکت، متد مناسب NotificationCompat.Builder را فراخوانی کنید. برای مثال، اگر میخواهید وقتی کاربر روی متن اعلان در کشوی اعلان کلیک میکند، Activity را شروع کنید، با فراخوانی متد setContentIntent() مقدار PendingIntent را اضافه میکنید.
یک شی PendingIntent به شما کمک می کند تا یک عمل را از طرف برنامه خود انجام دهید، در اغلب موارد این کار در زمانی دیگری انجام میشود و برای انجام اهمیتی ندارد که برنامه شما در حال اجرا است یا خیر. ما از شی سازنده پشته کمک می گیریم که حاوی یک پشته مصنوعی برای اکتیویتی شروع شده است.
Intent resultIntent = new Intent(this, ResultActivity.class); TaskStackBuilder stackBuilder = TaskStackBuilder.create(this); stackBuilder.addParentStack(ResultActivity.class); //Intent را که Activity را شروع می کند به بالای پشته اضافه می کند stackBuilder.addNextIntent(resultIntent); PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0,PendingIntent.FLAG_UPDATE_CURRENT); mBuilder.setContentIntent(resultPendingIntent);
مرحله 4 – صادر کردن نوتیفیکیشن
در نهایت، با فراخوانی NotificationManager.notify() شی Notification را به سیستم ارسال می کنید تا نوتیفیکیشن شما ارسال شود. مطمئن شوید که متد NotificationCompat.Builder.build() را روی شی Builder قبل از اطلاع رسانی آن فراخوانی کرده اید. این متد همه گزینه هایی را که تنظیم شده اند ترکیب می کند و یک شی Notification جدید را برمی گرداند.
NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); // notificationID به شما امکان می دهد اعلان را بعداً به روز کنید. mNotificationManager.notify(notificationID, mBuilder.build());
کلاس NotificationCompat.Builder
کلاس NotificationCompat.Builder امکان کنترل آسانتر روی همه flagها و همچنین کمک به ساخت طرحبندی نوتیفیکیشن های معمولی را فراهم میکند. در پایین متدهای مهم و پرکاربرد موجود بعنوان بخشی از کلاس NotificationCompat.Builder آورده شده است.
متد و توضیحات | ردیف |
متد build() در آبجکت Notification
همه گزینههایی که تنظیم شدهاند را درون یک شی اعمال میکند و آن شی Notification جدید را برمیگرداند. |
1 |
متد setAutoCancel (boolean autoCancel) و قابل استفاده در آبجکت NotificationCompat.Builder
تنظیم این flag باعث می شود تا وقتی کاربر روی نوتیفیکیشن کلیک می کند، نوتیفیکیشن بطور خودکار لغو شود. |
2 |
متد setContent (RemoteViews views) و قابل استفاده در آبجکت NotificationCompat.Builder
یک RemoteViews سفارشی را دریافت میکند و برای استفاده به جای view استاندارد میتوانید تنظیم کنید. |
3 |
متد setContentInfo (CharSequence info) و قابل استفاده در آبجکت NotificationCompat.Builder
تنظیم متن بزرگ در سمت راست نوتیفیکیشن. |
4 |
متد setContentIntent (PendingIntent intent) و قابل استفاده در آبجکت NotificationCompat.Builder
ست کردن یک PendingIntent برای زمانی که روی نوتیفیکیشن کلیک میشود. |
5 |
متد setContentText (CharSequence text) و قابل استفاده در آبجکت NotificationCompat.Builder
متن نوتیفیکیشن در ردیف دوم را تنظیم میکند در نوتیفیکیشن های استاندارد استفاده میشود. |
6 |
متد setContentTitle (CharSequence title) و قابل استفاده در آبجکت NotificationCompat.Builder
متن نوتیفیکیشن در ردیف اول تنظیم میکند و تنها در نوتیفیکیشن های استاندارد استفاده میشود. |
7 |
متدهای عمومی
متد و توضیحات | ردیف |
متد setDefaults (int defaults) و قابل استفاده در آبجکت NotificationCompat.Builder
گزینه های پیش فرض اعلان را که مورد استفاده قرار خواهند گرفت را تنظیم میکند. |
8 |
متد setLargeIcon (Bitmap icon) و قابل استفاده در آبجکت NotificationCompat.Builder
آیکن بزرگ را که اعلان ها نشان داده میشود را تنظیم میکند. |
9 |
متد setNumber (int number) و قابل استفاده در آبجکت NotificationCompat.Builder
عدد بزرگ را در سمت راست اعلان تنظیم میکند. |
10 |
متد setOngoing (boolean ongoing) و قابل استفاده در آبجکت NotificationCompat.Builder
تنظیم میکند که آیا این یک نوتیفیکیشن در حال انجام است یا خیر. |
11 |
متد setSmallIcon (int icon) و قابل استفاده در آبجکت NotificationCompat.Builder
آیکن کوچک را برای استفاده در طرحبندی اعلانها تنظیم میکند. |
12 |
متد setStyle (NotificationCompat.Style style) و قابل استفاده در آبجکت NotificationCompat.Builder
یک استایل برای نوتیفیکیشن اضافه میکند تا در زمان ساخت اعمال شود. |
13 |
متد setTicker (CharSequence tickerText) و قابل استفاده در آبجکت NotificationCompat.Builder
متنی را تنظیم میکند که هنگام دریافت اعلان در نوار وضعیت نمایش داده شود. |
14 |
متد setVibrate (long[] pattern) و قابل استفاده در آبجکت NotificationCompat.Builder
الگوی لرزش را برای استفاده تنظیم میکند که هنگام نمایش نوتیفیکیشن تلفن بلرزد. |
15 |
متد setWhen (long when) و قابل استفاده در آبجکت NotificationCompat.Builder
زمان وقوع رویداد را تنظیم میکند و Notification ها را در پنل بر اساس این زمان مرتب می کند. |
16 |