برنامه نویسی اندروید - دانشگاه صنعتی قم

این وبلاگ کانال ارتباطی با دانشجویان درس«برنامه نویسی موبایل» دانشگاه صنعتی قم می باشد.

برنامه نویسی اندروید - دانشگاه صنعتی قم

این وبلاگ کانال ارتباطی با دانشجویان درس«برنامه نویسی موبایل» دانشگاه صنعتی قم می باشد.

محتویات این وبلاگ با هدف آموزش اندروید در دوره درسی "برنامه نویسی موبایل" در دانشگاه صنعتی قم توسط اینجانب گردآوری شده است.
تعداد زیادی از مطالب ترجمه شده در این وبلاگ توسط دانشجویان دانشگاه صنعتی قم به عنوان پروژه های این درس ترجمه شده است.
در صورتی که تصمیم به تماس با من دارید، می توانید از طریق آدرس ایمیل qut دات android در جی میل دات کام با من تماس بگیرید.
-------------------
اگر بتوانم به شما کمکی در زمینه برنامه نویسی اندروید بکنم، خوشحال خواهم شد با این حال اگر پرسشی را ارسال کردید و بنده نیز به دلیل مشکلات و مشغله نتوانستم پاسخگو باشم، پوزش بنده را پیشاپیش پذیرا باشید.
-------------------
چون افراد زیادی از من درخواست می کنند تا برنامه نویسان اندروید به خصوص در شهر قم را به آنها معرفی کنند، اگر تمایل دارید رزومه و یا مشخصات خود را برایم ارسال کنید تا در صورت وجود درخواستهایی از این دست به شما اطلاع دهم.
از نظر من محدویتی به شهر قم وجود ندارد، لذا اگر برنامه نویس اندروید در شهرهایی دیگر هستید و یا به دنبال نیروی برنامه نویس اندروید هستید با من در تماس باشید، شاید بتوانم در این زمینه به شما کمکی بکنم :)
ناگفته نماند از آنجایی که در فضای مجازی من شناختی از هیچ شخص یا شرکتی ندارم، اگر شخصی به دنبال نیروی کار باشد، به افرادی که با مشخصات درخواستی ایشان تطابق داشته باشند، اطلاع خواهم داد و توصیه می شود برنامه نویسان محترم نیز قبل از شروع به همکاری، ملاحظات لازم در این زمینه را به عمل آورند چون من نیز شناختی از طرف مقابل ندارم.

طبقه بندی موضوعی
مترجم: علی جوادی
آدرس مطلب اصلی: http://code.tutsplus.com/tutorials/android-fundamentals-status-bar-notifications--mobile-5879

برنامه ها اغلب اوقات تعدادی عملیات پس زمینه انجام می دهند- زمانی که برنامه در حال اجراست یا بر اساس یک هشدار زمان بندی شده راه اندازی شود. با این حال کاربر نمی داند چه اتفاقی در حال رخ دادن است٬مگر این که از رویدادی آگاه شود . خوشبختانه٬آندروید سیستم اعلان ساده ای دارد که به برنامه ها اجازه می دهد تا پیغامی را در نوار وضعیت نمایش دهند و به هنگام رخداد اتفاق مهم جزئیات آگاهی بخشی برای کاربر فراهم کنند.

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

مرحله 0: آغاز:

در این آموزش فرض بر این است که از آخرین آموزش TutList که کنار گذاشتیم آغاز کرده اید. می توانید آن کد را دانلود کنید و از آنجا کار کنید یا می توانید کدی که همراه با این آموزش فراهم شده است را دانلود کنید و ببینید و پیش بروید. انتخاب با شماست. ما در نسخه نهم کد هستیم. نمایه tags نمایش دهنده منبع برای راحتی هر نسخه را داراست.

مرحله 1: اعلان های آندروید:

سیستم اعلان آندروید توسط کاربران و توسعه دهندگان خیلی تمجید شده است. این سیستم مناسب و انعطاف پذیر (قابل تطبیق و تغییر) است و استفاده از آن راحت است. این آموزش همه جزئیات سیستم اعلان را پوشش نخواهد داد. در عوض٬ روی یادگیری اعلان های خاص که برای برنامه TutList کار می کنند تمرکز خواهیم کرد.

معمولا اعلان ها در نوار وظیفه در بالای صفحه نمایش کاربران (یا پایین تبلت هایی که سیستم عامل آن ها آندروید 3.0 است) به صورت یک تصویر و متن کوتاه ظاهر می شوند. زمانی که نوار وضعیت به سمت پایین کشیده می شود٬ کاربر جزئیات بیشتر اعلان را می تواند ببیند. این جزئیات می توانند به صورت قراردادی ترسیم شوند یا اگر می خواهید سلیقه به خرج دهید می توانند با استفاده از شی RemoveViews مرسوم ترسیم شوند. علاوه بر این٬ اعلان ها می توانند همراه با صدا یا نورهای رنگارنگ چشمک زن باشند. همچنین می توانید اعلان ها را یکبار نمایش دهید٬ به طور مداوم نمایش دهید (به طور نمونه برای به روز رسانی پیشرفت یک کار در حال اجرا )٬ یا تعداد اقلامی را نمایش دهید (به طور نمونه برای نمایش تعداد ایمیل های جدید).

ما یک اعلان ساده ایجاد خواهیم کرد که زمانی که لیست آموزش ها در قالب xml دانلود شدند و تجزیه و تحلیل شدند٬ کاربر را مطلع می کند.

ابتدا با گرفتن یک نمونه از شی NotificationManager- شی اصلی که توسط آن اعلان ها اداره می شوند آغاز می کنیم. ما با اضافه کردن کد به تابع onPostExecute از کلاس داخلی DownloaderTask که در TutListDownloaderService می باشد شروع می کنیم.

کد جاوا زیر با استفاده از context برنامه یک نمونه را فراخوانی می کند:

مرحله 2: ایجاد یک اعلان:

یک شیNotification اطلاعاتی را که برای نمایش یک اعلان جدید به کاربر یا برای به روزرسانی یک اعلان موجود استفاده می شود٬ بسته بندی می کند. به خاطر اینکه اعلان های موجود می توانند به روزرسانی شوند٬ ایجاد یک اعلان دو بخش می شود. اول٬ داده اصلی اعلان شکل می گیرد (پیکربندی می شود)- تصویری که قرار است در نوار وضعیت نمایش داده شود٬ متن کوتاهی که در نوار وضعیت نمایش داده می شود و زمان اعلان- به طور جداگانه از رویداد اعلان ایجاد می شوند. رویداد اعلان که شامل جزئیات مخصوص برای نمایش به کاربر است.

اعلان را ایجاد می کنیم:

در اینجا٬ یکی از تصاویر سیستم را به عنوان تصویر قرار دادیم. برای برنامه خودتان٬ بهتر است مجموعه تصاویر را خودتان ایجاد کنید. گوگل منبع بزرگی در مورد ایجاد تصاویر نوار وضعیت برای آندروید 2.3 و بعد از آن و هم چنین آندروید 2.2 و قبل از آن دارد که در راهنمای تصویر مستند توسعه دهنده یافت می شود. درست زمانی که اعلان به کار می افتد متن به طور مختصر در نوار وضعیت نمایش داده می شود. برای نشان دادن زمان رخداد اعلان به کاربر از زمان (فیلد when) استفاده می شود.

توجه:در حالی که استفاده از Notification.Builder ممکن است ساده تر باشد٬ اما فقط در SDK سطح 11 و بعد آن در دسترس است.

مرحله 3: ایجاد یک PendingIntent :

زمانی که روی اعلان ها ضربه زده می شود می توانند یک Intent را راه اندازی کنند. آن ها از شی PendingIntent استفاده می کنند تا این کار را انجام دهند. یک PendingIntent یک Intent ساده را در یک شی پوشانده است (در بر گرفته است) به طوری که برنامه دیگر می تواند Intent اصلی را بفرستد چنان که گویی برنامه شما این کار را انجام داده است. زمانی که کاربر روی اعلان (ضربه) می زند٬ ما فقط می خواهیم برنامه آغاز شود. بنابراین ایجاد این شی PendingIntent آسان است.

مرحله 4: آماده سازی رویداد اعلان:

رویداد قراردادی اعلان نمایش داده شده شامل یک عنوان و متن آگاهی بخش است تا به کاربر بگوید که دلیل اعلان چیست. این رویداد هم چنین از شی PendingIntent که به تازگی ایجاد کرده ایم استفاده می کند. متن را بر اساس این که آیا دانلود و تجزیه و تحلیل موفقیت آمیز بوده است یا نه بارگذاری خواهیم کرد.

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

مرحله 5: اطلاع دادن به کاربر:

سرانجام به شی NotificationManager برمی گردیم و از تابع notify آن استفاده می کنیم تا اعلان را به کاربر نشان دهیم(یا اگر تغییر کرد آن را به روز رسانی کنیم).

اولین پارامتر تابع notify یک شناسه یکتای برنامه است. در کلاس TutListDownloaderService مقدار 100 را برای این پارامتر در نظر گرفته ایم. این مقدار باید یکتا باشد- همین طور هم است چون اعلان دیگری نداریم.

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

تصویر زیر نشان می دهد اعلان به چه شکل است. زمانی که کاربرخودش آخرین مقالات را دانلود کند یا این که لیست خود به خود و روزانه به روز رسانی شود این اعلان نمایش داده می شود.

نتیجه:

شما در این آموزش سریع نحوه ی نمایش اعلان ها به کاربران را یاد گرفتید. سیستم اعلان نه تنها خیلی انعطاف پذیر است٬ بلکه آسان است زمانی که فقط نیاز به نمایش یک اعلان ساده دارید. کاربرانتان از طریق دیدن این که در پس زمینه چه می گذرد و یادآورشدن درباره برنامه٬ از اعلان ها سود می برند.

  • وهاب صمدی بخارایی

نظرات  (۳)

سلام من رو تبلتم وقتی یه اعلانی میاد یه اعلانی مثل اعلان نوار وضعیت تو صفحه میاد وهمونطوری میمونه ومحو نمیشه اوایل محو میشد و میرفت الان باید بصورت دستی ردش کرد .
چجوری میشه یه کاری کرد وقتی پیغامی میاد این اعلان تو صفحه دیگه ظاهر نشه
با تشکر
پاسخ:
دوست عزیز
سلام
حقیقت امر سوالاتی از این دست رو باید از کسانی جویا بشین که تجربه کاربری موبایل دارند. اما این امکان هم وجود داره که اعلانهایی که ذکر می کنید با توجه به تنظیمات نرم افزاری که اون اعلان رو ایجاد می کنند از روی صفحه محو نشوند یعنی به صورت onGoing باشند، مثل اونهایی که مقدار باتری رو اعلام می کنند و حتی قابل حذف هم نیستند.
دلیلش اینه که چون بعضی اعلانها جدی هستند و نباید از روی صفحه محو شوند و تا زمانی که مثلاً روی اونها کلیک نشه یا مورد خاصی رفع نشه از بخش اعلانها حذف نمی شوند.
در ضمن در اندرویدهای بعد از Jelly Bean یعنی 4.1 شما می تونید با مراجع به بخش برنامه های گوشی، به صورت دستی Notification یا اعلانهای برنامه رو غیر فعال کنید :)
برای این که بفهمید Notification توسط چه برنامه ای تولید شده، می تونید انگشتتون رو چند لحظه روی Notification نگه دارید. در اکثر دستگاه های اندرویدی اعلانی ظاهر می شه که روش نوشته App Info یا اطلاعات برنامه کاربردی. وقتی اونو انتخاب کنید، به بخش اطلاعات اون برنامه می ره و در صورت زائد بودنش می تونید اون رو حذف کنید یا اعلانهاش رو غیر فعال کنید.
مع الوصف، چون تجربه بنده به عنوان کاربر موبایل بالا نیست پیشنهاد می کنم با دوستانی که در این زمینه ماهرتر هستند مشورت کنید و می تونید نگاهی به لینکهای زیر بندازید:
http://android.stackexchange.com/questions/30070/how-to-remove-sticky-permanent-notifications-from-notification-bar
http://www.geeksquad.co.uk/articles/how-to-remove-stuck-notifications-on-android-smartphones
سلام 
ممنون از لطفتون
نگاه کنید این اعلان ها از برنامه هایی مث وایبر ولاین هستند
من از دوستام میپرسم اصلا چنین حالتی براشون پیش نمیاد
ولی مثلا اعلانی از برنامه موب مارکت میاد بعد از چند ثانیه محو میشه...
ممنون از پاسختون 
من تا حدودی متوجه شدم
البته وقتی یک فایلی رو هم دانلود میکنم 
پیغامش میاد وباید بصورت دستی ردش کرد
که با برنامه خاصی هم دانلود نمیکنم

ارسال نظر

کاربران بیان میتوانند بدون نیاز به تأیید، نظرات خود را ارسال کنند.
اگر قبلا در بیان ثبت نام کرده اید لطفا ابتدا وارد شوید، در غیر این صورت می توانید ثبت نام کنید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی