با عرض سلام به شما دوستان عزیز ، امیدوارم که خوب باشیدو سلامت . در این قسمت به آموزش اعلان های اندروید میپردازیم. لطفا با ما همراه بمانید.

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

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

android-آموزش اندروید-آموزش برنامه نویسی اندروید

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

آموزش اندروید-آموزش برنامه نویسی اندروید

فرم گسترش یافته در بالا می تواند دارای یک view بزرگ باشد، که دارای جزئیات بیشتری در مورد اعلان است. شما می توانید تا ۶ خط اطلاعات اضافی را به اعلان اضافه کنید. تصویر زیر نشان دهنده­ی چنین اعلانی است .

آموزش اندروید-آموزش برنامه نویسی اندروید

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

شما راه ساده ای برای ایجاد یک اعلان در پیش دارید. برای ایجاد یک اعلان در اپلیکیشن خود مراحل زیر را دنبال کنید.
مرحله ۱: ایجاد سازنده­ی اعلان (Notification Builder )

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

آموزش اندروید-آموزش برنامه نویسی اندروید

مرحله ۲: تنظیم ویژگی های اعلان

با داشتن شی Builder، شما می توانید بسته به نیاز خود ویژگی های اعلان را با استفاده از شی Builder تنظیم کنید. ولی تنظیم حداقل ویژگی های زیر الزامی است .

یک آیکن کوچک، که به وسیله setSmallIcon() تنظیم می شود.

یک عنوان، که به وسیله setContentTitle() تنطیم می شود.

متن جزئیات، که به وسیله setContentText() تنطیم می شود.

آموزش برنامه نویسی android-آموزش android-آموزش اندروید-آموزش-آموزش برنامه نویسی اندروید

ویژگی های اختیاری زیادی وجود دارد که شما می توانید آنها را برای اپلیکیشن خود تنظیم کنید. برای یادگیری مطالب بیشتر در مورد آنها مستندات مرجع مربوط به NotificationCompat.Builder را ببینید.
مرحله ۳: پیوست اعمال (Attach Actions )

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

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

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

ما از شی سازنده پشته (stack builder) استفاده می کنیم که شامل یک پشته بازگشتی مجازی برای فعالیت (Activity) آغاز شده است. این کار تضمین می کند که مرور عقب گرد فعالیت، باعث می شود که فعالیت شما به صفحه نخستین (Home ) برگردد.

آموزش برنامه نویسی android-آموزش android-آموزش اندروید-آموزش-آموزش برنامه نویسی اندروید

مرحله ۴: صدور اعلان

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

آموزش برنامه نویسی android-آموزش android-آموزش اندروید-آموزش-آموزش برنامه نویسی اندروید
کلاس NotificationCompat.Builder

کلاس NotificationCompat.Builder امکان کنترل راحت تر بر روی flag ها را فراهم می کند و به ساخت صفحه بندی های اعلان کمک می کند. در بخش زیر مهم ترین و رایج ترین متدهای موجود در کلاس NotificationCompat.Builder ارائه شده است.

شماره

متد ها و توصیف آنها

۱

Notification build()

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

۲

NotificationCompat.Builder setAutoCancel (boolean autoCancel)

تنطیم این flag باعث میشود که، زمانیکه کاربر بر روی صفحه اعلان کلیک می کند، اعلان به صورت اتوماتیک کنسل شود.

۳

NotificationCompat.Builder setContent (RemoteViews views)

به جای RemoteViews استاندارد، یک RemoteViews سفارشی را برای استفاده ایجاد می کند.

۴

NotificationCompat.Builder setContentInfo (CharSequence info)

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

۵

NotificationCompat.Builder setContentIntent (PendingIntent intent)

زمانی که بر روی اعلان کلیک می شود، یک PendingIntent را ایجاد می کند.

۶

NotificationCompat.Builder setContentText (CharSequence text)

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

۷

NotificationCompat.Builder setContentTitle (CharSequence title)

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

۸

NotificationCompat.Builder setDefaults (int defaults)

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

۹

NotificationCompat.Builder setLargeIcon (Bitmap icon)

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

۱۰

NotificationCompat.Builder setNumber (int number)

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

۱۱

NotificationCompat.Builder setOngoing (boolean ongoing)

تعیین می کند که اعلان مورد نظر یک اعلان مداوم (ongoing) هست یا نه.

۱۲

NotificationCompat.Builder setSmallIcon (int icon)

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

۱۳

NotificationCompat.Builder setStyle (NotificationCompat.Style style)

یک سبک اعلان غنی را برای اعمال در زمان ساخت می سازد.

۱۴

NotificationCompat.Builder setTicker (CharSequence tickerText)

متنی را تنظیم می کند که در زمان اولین ظاهر شدن اعلان، در نوار وضعیت نمایش داده می شود.

۱۵

NotificationCompat.Builder setVibrate (long[] pattern)

الگوی لرزش (vibration) مورد استفاده را تنظیم می کند.

۱۶

NotificationCompat.Builder setWhen (long when)

زمان وقوع رویداد را تنظیم می کند. اعلان های موجود در پنل با توجه به این زمان مرتب می شوند.

مثال

مثال زیر نحوه عملکرد یک اعلان اندرویدی را با استفاده از یک کلاس NotificationCompat.Builder که در اندروید نسخه ۴٫۱ معرفی شده است، نمایش می دهد.

مرحله

توصیف

۱

از Eclipse IDE برای ایجاد یک اپلیکیشن اندرویدی استفاده کنید و آن را تحت پکیج com.example.dragndropdemo، DragNDropDemo بنامید. در حالیکه این پروژه را ایجاد می کنید برای استفاده از سطوح بالاتر API ها، از آخرین نسخه Target SDK و Compile With اطمینان حاصل کنید.

۲

فایل src/MainActivity.java را تغییر دهید و کدهایی را برای تعریف سه متد startNotification()، startNotification() و updateNotification() برای پوشش حداکثر قابلیت مربوط به اعلان های اندرویدی اضافه کنید.

۳

یک فایل جاوای جدید src/NotificationView.java را ایجاد کنید که برای نمایش یک layout جدید به کار می رود. این layout جدید به عنوان بخشی از فعالیت جدیدی است که در زمان کلیک کاربر بر روی هر یک از اعلان ها آغاز می شود.

۴

تصویر woman.png را در پوشه res/drawable-* کپی کنید. این تصویر به عنوان آیکن اعلان مورد استفاده قرار می گیرد. در صورتی که می خواهید تصاویر را برای دستگاه های مختلف به کار ببرید، می توانید از تصاویری با وضوح مختلف استفاده کنید.

۵

فایل صفحه بندی XML، res/layout/activity_main.xml را برای اضافه کردن سه دکمه با صفحه بندی خطی تغییر دهید.

۶

یک فایل صفحه بندی جدید res/layout/notification.xml را تعریف کنید. این فایل به عنوان فایل صفحه بندی برای فعالیت جدیدی که با کلیک بر روی اعلان آغاز می شود، به کار می رود.

۷

فایل res/values/strings.xml را برای تعریف مقادیر ثابت های مورد نیاز تغییر دهید.

۸

برای راه اندازی امولاتور اندروید اپلیکیشن را اجرا کنید و نتایج تغییرات اعمال شده در اپلیکیشن را بررسی کنید.

در بخش زیر محتوای تعییر یافته ­ی فایل فعالیت اصلی

src/com.example.notificationdemo/MainActivity.java ارائه شده است. این فایل می تواند شامل هر کدام از متدهای چرخه­ ی حیات اصلی باشد.

android-آموزش اندروید-آموزش برنامه نویسی اندروید

آموزش برنامه نویسی android-آموزش android-آموزش اندروید-آموزش-آموزش برنامه نویسی اندروید

آموزش برنامه نویسی android-آموزش android-آموزش اندروید-آموزش-آموزش برنامه نویسی اندروید

بخش زیر محتوای تغییر یافته ­ی فایل فعالیت اصلی

src/com.example.notificationdemo/NotificationView.java را نمایش می دهد.

آموزش برنامه نویسی android-آموزش android-آموزش اندروید-آموزش-آموزش برنامه نویسی اندروید

بخش زیر محتوای فایل res/layout/activity_main.xml است.

آموزش برنامه نویسی android-آموزش android-آموزش اندروید-آموزش-آموزش برنامه نویسی اندروید

بخش زیر محتوای فایل res/layout/notification.xml است.

آموزش برنامه نویسی android-آموزش android-آموزش اندروید-آموزش-آموزش برنامه نویسی اندروید

بخش زیر محتوای فایل res/values/strings.xml برای تعریف دو ثابت جدید است.

آموزش برنامه نویسی android-آموزش android-آموزش اندروید-آموزش-آموزش برنامه نویسی اندروید

بخش زیر محتوای فایل AndroidManifest.xml است.

آموزش برنامه نویسی android-آموزش android-آموزش اندروید-آموزش-آموزش برنامه نویسی اندروید

اکنون می خواهیم اپلیکیشن NotificationDemo را اجرا کنیم. من فرض می­کنم که شما AVD خود را در زمان نصب محیط ایجاد کرده باشید. برای اجرای اپلیکیشن از Eclipse، یکی از فایل های فعالیت پروژه­ی خود را باز کنید و بر روی آیکن Run از نوار ابزار کلیک کنید. Eclipse، اپلیکیش را بر روی AVD شما نصب میکند و آن را آغاز می کند، و در صورتی که همه­ی موارد مربوط به تنظیمات و برنامه شما درست باشد، صفحه امولاتور زیر برای شما نمایش داده می شود.

آموزش اندروید-آموزش برنامه نویسی اندروید

اکنون بر روی دکمه Start Notification کلیک کنید. با این کار پیغام ” New Message Alert!” لحظه ای در بالای صفحه نمایش داده می شود و پس از آن شما صفحه زیر را خواهید داشت که یک آیکن کوچک در گوشه بالای سمت چپ آن موجود است.

android-آموزش اندروید-آموزش برنامه نویسی اندروید

اکنون می خواهیم View را توسعه بدهیم. به مدت طولانی بر روی آیکن کوچک کلیک کنید، بعد از یک ثانیه اطلاعات مربوط به تاریخ نمایش داده می شود و اینجا زمانیست که شما باید بدون رها کردن موس، نوار وضعیت را به سمت پایین بکشید. می بینید که نوار وضعیت توسعه می یابد و شما صفحه زیر را خواهید داشت.

android-آموزش اندروید-آموزش برنامه نویسی اندروید

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

android-آموزش اندروید-آموزش برنامه نویسی اندروید

سپس شما می توانید بر روی Detail of notification کلیک کنید. این کار شما را به صفحه اصلی بر می گرداند که در آنجا شما می توانید استفاده از دکمه Update Notification را امتحان کنید. که اعلان موجود را به روز رسانی می کند و تعداد ۱ واحد افزایش می یابد ولی اگر شما اعلان ها را با شماره شناسایی جدید ارسال کنید، عمل اضافه شده در پشته ادامه می یابد و اعلان ها به صورت جداگانه بر روی صفحه نمایش لیست می شوند.
اعلان با View بزرگ (Big View Notification)

قطعه کد زیر نشان می دهد که چگونه اعلان ایجاد شده در قطعه قبلی را تغییر دهیم که از سبک نمایش بزرگ Inbox استفاده کند. من قصد دارم که متد displayNotification() را برای نشان دادن این قابلیت به روز رسانی کنم.

android-آموزش اندروید-آموزش برنامه نویسی اندروید

android-آموزش اندروید-آموزش برنامه نویسی اندروید

اکنون اگر شما اپلیکیشن خود را اجرا کنید، در حالت توسعه یافته ­ی View، صفحه زیر را مشاهده می کنید.